我有不同的密码验证规则。他们中的大多数人都工作正常,但特殊字符的处理有些棘手。规则说:密码必须至少包含一个特殊字符(来自特殊字符列表)。我创建了用于jquery validate的其他方法来处理此问题,但由于某些原因,列表外的字符被视为有效。
例如:
654321Ab /有效,因为/是可接受的特殊字符
654321Ab /°无效,因为°不是有效的特殊字符,但现在已将其视为正确字符
这是我的jsfiddle:http://jsfiddle.net/o6L3s14c/
我的其他方法脚本:
$.validator.addMethod("pwcheckspechars", function (value) {
return /[!@#$%^&*()_=\[\]{};':"\\|,.<>\/?+-]/.test(value)
}, "The password must contain at least one special character");
最佳答案
您报告的规则检查字符串是否包含至少一个特殊字符。您提到的两个字符串均符合此规则(均包含/
)。
第二个字符串包含规则中未包含的其他字符的事实不会更改测试的有效性(/
仍然存在)。
您可以添加另一种验证方法来检查您的字符串是否仅包含允许的字符,如下所示:
/^[a-zA-Z0-9!@#$%^&*()_=\[\]{};':"\\|,.<>\/?+-]+$
可以解释为:
一次或多次开始(a-Z,A-Z,0-9或某些特殊字符)
结束
示例:http://jsfiddle.net/o6L3s14c/4/
关于javascript - 正则表达式在其他方法jquery validate中的特殊字符问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28609312/