在附加方法jquery validate中为特殊字符使用regex
Issue with regex for special characters in additional method jquery validate
我有不同的密码验证规则。它们中的大多数都很好,但对于特殊角色来说有点棘手。规则规定:密码必须至少包含一个特殊字符(从特殊字符列表中)。我为jquery-validate创建了额外的方法来处理此问题,但由于某些原因,列表之外的字符被视为有效字符。
例如:
- 654321Ab/有效,因为/是可接受的特殊字符
- 654321Ab/°必须无效,因为°不是有效的特殊字符,但现在它被视为正确字符
这是我的小提琴: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!@#$%^&*()_='[']{};':"''|,.<>'/?+-]+$
可以解释为:
START(a-Z、a-Z、0-9或某些特殊字符)一次或多次结束
示例:http://jsfiddle.net/o6L3s14c/4/
$.validator.addMethod("pwcheck", function(value) {
return /^[a-zA-Z0-9!@#$%^&*()_='[']{};':"''|,.<>'/?+-]+$/.test(value)
&& /[a-z]/.test(value) // has a lowercase letter
&& /'d/.test(value)//has a digit
&& /[!@#$%^&*()_='[']{};':"''|,.<>'/?+-]/.test(value)// has a special character
},"must consist lowercase letter, number and special characters");
相关文章:
- Regex测试特殊字符
- jQuery-Regex以防止任何特殊字符
- RegEx只获取特殊字符,前后不获取任何字符
- Javascript和RegEx用于删除特殊字符
- REGEX (javascript) - 允许字母数字字符中的特殊字符不在第一个位置
- JavaScript-Regex删除代码/特殊字符/数字等
- RegEx:处理特殊字符
- 在附加方法jquery validate中为特殊字符使用regex
- javascript:如何使用regex删除两个特殊字符之间的逗号(,)
- Regex允许某些特殊字符-转义问题
- Regex不允许某些特殊字符
- 不允许使用除允许使用的字符javascript regex之外的特殊字符
- 带有特殊字符和空格的Javascript Regex
- 如果存在超过3个字母或2个特殊字符,Regex将失败
- Javascript Regex可以删除任何空格、特殊字符和数字
- Regex接受Javascript中的字母数字和一些特殊字符
- javascript中regex绕过了特殊字符检查
- Regex仅包含数字和2个仅带空格的特殊字符
- Regex允许特殊字符
- RegEx-允许字母,数字,只有特殊字符逗号-但没有前面或后面的逗号