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

标签 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(匹配但不应匹配,因为它有两个以上的字母)

最佳答案

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

\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/

相关文章:

iphone - handleOpenUrl 中的 RESTFUL url 设计

ruby - 如何在 "."上拆分,但前提是后面有非数字?

regex - 如何从字符串 "ATAT"中 grep 2 次出现字符串 "ATATAT"。我只得到一个

javascript - Bootstrap datepicker 在通过 javascript 函数放在页面上时不起作用

javascript - 为什么当我写入 'onload' 时我的表没有显示?

javascript - jQuery datepicker 获取类 'hasDatepicker' 但不显示 datepicker

javascript - 如何在 Angular 中使用指令加载外部模板?

Java 正则表达式没有取代我的模式

php - 正则表达式 (preg_split) : how do I split based on a delimiter, 不包括一对引号中的定界符?

javascript - 用于获取本地 json 的自定义 Hook 中的错误