正则表达式搜索不超过2个字母的字符串

时间:2018-10-28 22:56:42

标签: javascript regex

如何编写具有以下要求的JavaScript RegEx。

  • 仅字母数字
  • 字符串长度应在9-10之间
  • 字符串中的任何顺序最多可以包含2个字母,最小为0

下面是我写的。似乎部分工作。

\b(?=.*[a-zA-Z]{0,2})([a-zA-Z0-9]{9,10})\b

这似乎可行,但也可以接受3个以上的字母。

  • 1234567890(匹配)

  • 12345B7T90(匹配)

  • AA123D4324(匹配,但不应该匹配,因为它具有超过2个字母)

1 个答案:

答案 0 :(得分:4)

您可以使用以下正则表达式:

\b(?!(\d*[a-zA-Z]){3,})\w{9,10}\b

它从单词边界'\b'开始,然后对它使用否定的前瞻性:

\d*零个或多个数字,后跟:

[a-zA-Z]一封信。这不应该是:

{3,} 3个或更多。

如果成功,则在Word字符的9到10之间匹配,最后在单词boundary之间匹配。