我无法为我的案例找到正确的正则表达式。我发现它几乎是完美的,但它仍然通过前导空间。
要求:
var regex = /^\s*(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)\s*$/;
var passwd = "abcdefg12345" //Passes
var passwd = " abcdefg12345" //Does not pass
var passwd = "abcdefg 12345" //Does not pass
var passwd = "abcdefg12345 " //Passes but should not
有任何建议吗?
另外我想增加最小长度要求,应该怎么做?
答案 0 :(得分:1)
如果要阻止前导或尾随空格,只需删除最后一个\s
即可。要设置密码的最小长度,请将+
量词更改为{n,}
,其中 n 是最小长度。
例如,以下模式匹配包含至少一个字母和至少一个数字的5个或更多字母数字字符的任何序列:
/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]{5,})$/