From ac25489c2b5ac02ed4ebd4501eb176466b8d2ea6 Mon Sep 17 00:00:00 2001 From: Ben Woodward Date: Sun, 7 Jun 2020 10:02:44 -0700 Subject: :bug: Escape special chars (#6) Escapes special characters `";,:\` Fixes #3 --- src/components/Card.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/components/Card.js b/src/components/Card.js index 2373b26..dfe804f 100644 --- a/src/components/Card.js +++ b/src/components/Card.js @@ -7,8 +7,26 @@ const Card = () => { const [password, setPassword] = useState(''); const [qrvalue, setQrvalue] = useState(''); + const escape = (v) => { + const needsEscape = ['"', ';', ',', ':', '\\']; + + let escaped = ''; + for (let i = 0; i < v.length; i++) { + let c = v[i]; + if (needsEscape.includes(c)) { + c = '\\' + c; + } + escaped += c; + } + + return escaped; + } + useEffect(() => { - setQrvalue(`WIFI:T:WPA;S:${ssid};P:${password};;`); + let _ssid = escape(ssid), + _password = escape(password); + + setQrvalue(`WIFI:T:WPA;S:${_ssid};P:${_password};;`); }, [ssid, password]); return ( -- cgit v1.2.3