reuirement:至少2个Alpha,2个数字,最少8个字符
字母数字可以是任何地方
最小长度为8个字符(最大长度为32个字符
必须包含至少2个alpha和2个数字字符
可以包括Dash,逗号,句号,空格()
/^(?=.*[a-zA-Z]{2})(?=(.*\d){2})(?!^[0-9]*$)(?!^[A-Za-z]*$)
我尝试了上述但是只验证了两个连续字符 例如test case1:te3f3。, - (已通过) 测试用例2:t2g2。, - g(失败)但即使alha字符不连续也必须通过
答案 0 :(得分:3)
要查找字符串是否包含2个内容,您必须允许其间包含字符。围绕非捕获组中的前瞻表达。
^(?=(?:.*[A-Za-z]){2})(?=(?:.*\d){2})[A-Za-z0-9 ,.-]{8,32}$
要获得更快的正则表达式,请更加具体而不是.*
:
^(?=(?:[^A-Za-z]*[A-Za-z]){2})(?=(?:\D*\d){2})[A-Za-z0-9 ,.-]{8,32}$