我正在使用
function validatePassword(password)
{
var re = /^(?=.*[A-Za-z])(?=.*[$@.$!%*#?&0-9])[A-Za-z\d$@.$!%*#?&]{0,100}$/i;
return re.test(password);
}
密码包含至少一个数字或特殊字符,如果没有任何字符,即使我给出数字或特殊字符
,它也能正常工作至少一个字符答案 0 :(得分:2)
/^(?=.*[A-Za-z])(?=.*[$@.$!%*#?&0-9])[A-Za-z\d$@.$!%*#?&]{8,15}$/i
匹配
^
- 字符串开头(?=.*[A-Za-z])
- 行(?=.*[$@.$!%*#?&0-9])
- 需要一个数字或一些特殊符号。[A-Za-z\d$@.$!%*#?&]{8,15}
- 8到15个字母,数字和指定的特殊符号$
- 字符串结尾/i
- 不区分大小写的匹配 (?=.*[A-Za-z])
前瞻需要一封信。如果您不需要,请删除此前瞻。
使用
/^(?=.*[$@.!%*#?&0-9])[A-Za-z\d@.$!%*#?&]{8,15}$/i
或者 - 如果密码必须包含至少一个数字和一个特殊字符:
/^(?=[^0-9]*[0-9])(?=[^$@.!%*#?&]*[$@.!%*#?&])[a-z0-9@.$!%*#?&]{8,15}$/i
其中(?=.*[$@.!%*#?&0-9])
分为2个前瞻:(?=[^0-9]*[0-9])
需要至少1个数字,(?=[^$@.!%*#?&]*[$@.!%*#?&])
需要指定集合中至少一个特殊符号。
演示:
function validatePassword(password)
{
var re = /^(?=[^0-9]*[0-9])(?=[^$@.!%*#?&]*[$@.!%*#?&])[a-z0-9@.$!%*#?&]{8,15}$/i;
return re.test(password);
}
console.log(validatePassword("password"));
console.log(validatePassword("12345678"));
console.log(validatePassword("12345678moreWords"));
console.log(validatePassword("12468word!"));