我需要验证具有以下要求的字段:
我想出了以下正则表达式,但它并不总是有效,它允许我想要排除的一些特殊字符
/^(?!.*(.)\1)((?=.*[^\w\d\s])(?=.*\w)|(?=.*[\d])(?=.*\w)).{6,50}$/
答案 0 :(得分:7)
它真的必须是正则表达式吗?我只想编写一个测试这些标准的函数。
function isValid(password)
{
return password.length >= 6
&& password.length <= 50
&& password.match(/[A-Za-z]/)
&& password.match(/[0-9_\-.&$*!@]/);
}
这不容易吗?
答案 1 :(得分:0)
这是因为你最后会与.
匹配,所以如果满足你的所有条件,那么任何剩余的50个字符都可以是任何东西。我会用:
/^(?=.{6,50}$)(?=.*[a-zA-Z])(?=.*[\d_.&$*!@-])[a-zA-Z\d_.&$*!@-]*$/
答案 2 :(得分:0)
我想说你需要以下内容:
(字母或符号)* 信件或 符号 (字母或符号)*
OR
(字母或符号)* 符号 信件或 (字母或符号)*