正则表达式匹配字符和最大长度

Jam*_*mes 3 javascript regex

我试图在javascript中创建一个符合这些要求的正则表达式

  • 从0开始但第二个数字不是0
  • 长11-12个字符
  • 必须包含1个空格
  • 没有其他特殊字符或字母,只是数字

到目前为止,我已经提出了 ^[0][1-9][\d ]{9,10}$

但是,这仍然会匹配2个空格或没有空格.到目前为止,我找不到在数字中任何地方只需要一个空格的方法是不成功的.我尝试了积极的前瞻,并在网上找到了其他的例子,但是使量化器与要求一起工作已经证明是困难的.

Wik*_*żew 11

您可以使用

/^(?=.{11,12}$)(?=\S* \S*$)0[ 1-9][ \d]+$/
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示

细节:

  • ^ - 字符串的开头
  • (?=.{11,12}$) - 总长度必须是11到12个字符(只是前瞻检查,如果不满足条件则不匹配)
  • (?=\S* \S*$) - 必须只有1个空格(只是前瞻检查,如果不满足条件则不匹配)
  • 0- 匹配的第一个字符必须是0
  • [ 1-9]- 第二个字符是任何数字但是0空格
  • [ \d]+ - 一个或多个数字或空格
  • $ - 字符串结尾.

  • 太好了,该演示也提供了很好的细分来帮助您理解它。我从未考虑过使用超前检查长度。非常感激。 (2认同)