问题几乎在标题中。我需要检查字符串是否只有字母数字 - 没有特殊字符,并且包含至少一个小写字母、至少一个大写字母、至少一个数字。
passWORD1
验证,password2, PASSWORD3, passWORD, passWORD5*, psWD6
不会。
它类似于正则表达式来检查字符串是否至少包含 A-Za-z0-9 但不包含 &,但不满足所有条件。我也可以遍历标准,但我真的需要一个正则表达式来提供它来验证.js模块(所以 JS/Node(,它只会抛出一个错误,一次说明所有密码标准(
你应该试试这个:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*d)[a-zA-Zd]{8,}$"
^ Start of the string
(?=.*[a-z]) lowercase validation
(?=.*[A-Z]) uppercase validation
(?=.*d) numbers validation
[a-zA-Zd] characters allowed
{8,} minimum size (you can put the maximum after the comma)
$ End of the String
您需要满足所有要求的正则表达式是这样的,
^(?=[A-Z0-9]*[a-z])(?=[a-zA-Z]*[0-9])(?=[a-z0-9]*[A-Z])[a-zA-Z0-9]{8,}$
您基本上需要三个积极的展望来确保满足三种字符的最小存在的三个条件,并最终使用字符集后跟正则表达式中提到的量词来使用字母数字字符。
解释:
-
^
- 字符串的开头 -
(?=[A-Z0-9]*[a-z])
- 向前看,确保至少有一个小写字母 -
(?=[a-zA-Z]*[0-9])
- 向前看以确保至少一位数字 -
(?=[a-z0-9]*[A-Z])
- 向前看以确保至少有一个大写字母 -
[a-zA-Z0-9]{8,}
- 捕获八个或更多字母数字字符 -
$
- 匹配字符串末尾
正则表达式演示