正则表达式,包含至少10个包含至少3位数字的字母数字字符

时间:2018-03-09 12:26:21

标签: javascript html regex validation input

我正在尝试构建一个正则表达式,该正则表达式只允许包含至少10个包含至少3位数的字母数字字符的字符串。

例如:

X6JV2YUW8T => True
JN1H86LEKA => True
111JEJE134 => True
A111111111 => True
ABCDEFGHIJ => False
0123456789 => False

非常感谢提前

2 个答案:

答案 0 :(得分:0)

您可以使用+-------+------------+----+-----+ |Col1 |Acceleration|Mass|Force| +-------+------------+----+-----+ |weight2|14 |7 |98 | |weight1|18 |9 |162 | +-------+------------+----+-----+

^(?=(.*\d){3})(?=(.*[a-zA-Z]))[a-zA-Z0-9]{10,}$

^                                             $     The whole string
 (?=(.*\d){3})                                      Should contain at least three digits
              (?=(.*[a-zA-Z]))                      And contain at least one letter
                              [a-zA-Z0-9]{10,}      And be at least 10 alphanumeric characters

注意:最后一个返回true,因为它与基于问题的预期语法匹配。

答案 1 :(得分:0)

如果您需要至少10个字母数字字符(字符和数字),并且至少3位数字,您可以使用2个正数lookaheads来检查3个数字和1个字母数字字符(使用不区分大小写的标记{{1在js模式中):

^(?=(?:[a-z0-9]*[a-z]))(?=(?:[a-z0-9]*[0-9]){3})[a-z0-9]{10,}$

那将匹配:

  • /i字符串的开头
  • ^积极前瞻
    • (?=非捕获组
    • (?:匹配零个或多个字母数字字符,然后匹配1个字母数字字符
    • [a-z0-9]*[a-z]关闭没有捕获组
  • )关闭前瞻
  • )积极前瞻
    • (?=匹配零个或多个字母数字字符,然后匹配3位数字
  • (?:[a-z0-9]*[0-9]){3}关闭lookahaed
  • )匹配至少10倍的字母数字字符
  • [a-z0-9]{10,}字符串结尾



$