1

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

要求:

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

有什么建议吗?

另外我想添加长度的最低要求,应该怎么做?

4

1 回答 1

1

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

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

/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]{5,})$/
于 2014-01-16T18:13:18.900 回答