我有以下验证码:
store-log-monitor
要求是: 最小长度8个字符,1个特殊字符,1个字母字符,1个最小数字。
我不熟悉正则表达式,但是,验证不适用于function validPassword(password)
{
var regex = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#-?&])[A-Za-z\d$@$!%*#-?&]{8,}$/;
var valid = regex.test(password);
return valid;
}
- 由于某些原因,检测到特殊字符并不起作用。
有任何想法吗?感谢
答案 0 :(得分:1)
问题是在作为前后字符之间的范围的字符类中间存在未转义的连字符。
您可以使用此正则表达式来修复它:
/^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&-])[A-Za-z\d$@$!%*#?&-]{8,}$/
请注意在前瞻和匹配中如何将字符串放在字符类的末尾。
你也可以在开始时放置未转义的连字符。