正则表达式密码要求,没有尾随空格

时间:2014-01-16 18:11:23

标签: regex passwords whitespace trailing

我无法为我的案例找到正确的正则表达式。我发现它几乎是完美的,但它仍然通过前导空间。

要求:

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

有任何建议吗?

另外我想增加最小长度要求,应该怎么做?

1 个答案:

答案 0 :(得分:1)

如果要阻止前导或尾随空格,只需删除最后一个\s即可。要设置密码的最小长度,请将+量词更改为{n,},其中 n 是最小长度。

例如,以下模式匹配包含至少一个字母和至少一个数字的5个或更多字母数字字符的任何序列:

/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]{5,})$/