正则表达式中的字符限制不起作用

Ned*_*Ned 0 regex

我想检查字符串是否符合这些规则:

  • 第一部分: 2位数
  • 1个空间
  • 第二部分:大写字母.1,2或3个字符
  • 1个空间
  • 第三部分: 2,3或4位数

我的正则表达式:

/\d{2}\s.[A-Z]{1,3}\s.\d{2,4}/
Run Code Online (Sandbox Code Playgroud)

它适用于大多数字符串,但它不适用于以下内容:

  • 134 HY 723(第一部分不允许3位数字)
  • 34 H 723(第二部分应该允许一个字母)
  • 34 HD 723435(第三部分不允许超过4位数)

Doo*_*nob 6

使用这个:

/^\d{2}\s[A-Z]{1,3}\s\d{2,4}$/
Run Code Online (Sandbox Code Playgroud)

你错过了锚点(^$).例如,您的原始匹配将134 HY 723匹配34 HY 723.

我也删除了两个随机.的.(我不知道为什么他们在那里)