在javascript

时间:2016-07-29 05:02:31

标签: javascript regex

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字符不连续也必须通过

1 个答案:

答案 0 :(得分:3)

要查找字符串是否包含2个内容,您必须允许其间包含字符。围绕非捕获组中的前瞻表达。

^(?=(?:.*[A-Za-z]){2})(?=(?:.*\d){2})[A-Za-z0-9 ,.-]{8,32}$

Regex101 Demo

要获得更快的正则表达式,请更加具体而不是.*

^(?=(?:[^A-Za-z]*[A-Za-z]){2})(?=(?:\D*\d){2})[A-Za-z0-9 ,.-]{8,32}$