如何编写符合以下要求的 JavaScript RegEx。
- 仅限字母数字
- 字符串长度应在 9-10 之间
- 字符串中任意顺序最多可以有2个字母,最少可以有0个
下面是我写的。似乎部分工作。
\b(?=.*[a-zA-Z]{0,2})([a-zA-Z0-9]{9,10})\b
这似乎可行,但也接受超过 3 个字母。
1234567890(匹配)
12345B7T90(匹配)
AA123D4324(匹配但不应匹配,因为它有两个以上的字母)
最佳答案
您可以使用以下正则表达式:
\b(?!(\d*[a-zA-Z]){3,})\w{9,10}\b
它以一个单词边界 '\b'
开始,然后它使用一个否定的前瞻:
\d*
零个或多个数字,后跟:
[a-zA-Z]
一个字母。这不应该是:
{3,}
3 个或更多。
如果成功,则匹配 9 到 10 个 Word
字符,最后匹配一个 Word boundary
。
关于javascript - 正则表达式搜索不超过 2 个字母的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53036790/