我正在设置密码验证屏幕,要求至少有一个符号,例如下面列出的符号。
我应该如何逃避它们,以便它在Javascript下正常工作?
//validate symbol
if (pswd.match(/`~!@#$%^&*()_+=-\][{}\;':"<>?,/./)) {
$('#symbol').removeClass('invalid').addClass('valid');
} else {
$('#symbol').removeClass('valid').addClass('invalid');
}
答案 0 :(得分:2)
请改用:
if (pswd.match(/[^A-Za-z0-9]+/)) {
它匹配包含至少一个不在列表[A-Za-z0-9]
答案 1 :(得分:1)
斜杠和右方括号是唯一需要在字符组中转义的 - 只要连字符不在两个字符之间。
if(/[/`~!@#$%^&*()_+=[{};':"<>?,.\/\]-]/.test(pswd) ){
答案 2 :(得分:0)
我不确定您要匹配的字符,因为原始字符串非常混乱。检查这是否是您想要的所有字符:
"we?dn^~!@#$%^&*()_+-={dsfs}sf[]\\|:\";',./?><".match(/[`~!@#$%^&*()_+=\]\[{};':"<>?,\/.-]/g)
>> ["?", "^", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "+", "-", "=", "{", "}", "[", "]", ":", """, ";", "'", ",", ".", "/", "?", ">", "<"]
为了清楚起见,这是正则表达式:
/[`~!@#$%^&*()_+=\]\[{};':"<>?,\/.-]/
修改强>
如果您想要包含\
和|
,请使用此正则表达式:
/[\\`~!@#$%^&*()_+=\]\[{};':"<>?,\/.|-]/