3

我正在尝试使用 2 个函数来验证 SSID 和 WPA2 密码。

function isValidSSID(ssid) {
    return (regex)
}

function isValidWPA(passcode) {
    return (regex)
}

我希望为每个人找到一个正则表达式......

我正在寻找每个的有效字符:

SSID 最多可以包含 32 个字母数字字符,区分大小写。第一个字符不能是 !、# 或 ; 特点。+、]、/、"、TAB 和尾随空格是 SSID 的无效字符。

WPA: https ://superuser.com/questions/223513/what-are-the-technical-requirements-for-a-wpa-psk-passphrase

谢谢,唐

更新:

对我有用的 SSID 功能:

function isValidSSID(str) { return /^[!#;].|[+\[\]/"\t\s].*$/.test(str); }

我使用了网站https://regex101.com/r/ddZ9zc/2/

对我有用的 WPA 功能:

 function isValidWPA(str) { return /^[\u0020-\u007e\u00a0-\u00ff]*$/.test(str); }

JavaScript中所有可打印字符的正则表达式

我在javascript的其他地方做了长度检查。

谢谢!

4

3 回答 3

4

我使用这个正则表达式来匹配 SSID:

^[^!#;+\]\/"\t][^+\]\/"\t]{0,30}[^ !#;+\]\/"\t]$|^[^ !#;+\]\/"\t]$
于 2018-08-15T17:20:20.553 回答
3

我用安德烈的回答想出了这个:

^[^!#;+\]\/"\t][^+\]\/"\t]{0,30}[^ +\]\/"\t]$|^[^ !#;+\]\/"\t]$[ \t]+$

SSID 最多可以包含 32 个字母数字字符,区分大小写。第一个字符不能是 !、# 或 ; 特点。+、]、/、"、TAB 和尾随空格是 SSID 的无效字符。

使用正则表达式 andrey,您不能使用 !、# 或 ; 在字符串中,但是上面的文本指定它们不能仅在字符串的开头使用。

于 2021-02-15T20:23:54.203 回答
0

对于 SSID,我会使用这个正则表达式(不包括零长度的情况):

/^[^!#;+\]/"\t][^+\]/"\t]{0,31}$/

对于 WPA 密码(8 到 63 个可打印的 ASCII 字符,编码范围从 32 到 126):

/^[\u0020-\u007e]{8,63}$/
于 2021-04-18T09:07:12.860 回答