我需要一个正则表达式模式,该模式与带有前导空格的固定长度数字字符串(六个字符)相匹配。空格(零个或最多 5 个)始终位于字符串的左侧。数字(1 或最多 6)始终位于右侧。 所以:
" 4" is valid
"123456" is valid too
"12 " is not valid
" 12 " is not valid
"12 34" is not valid
" " is not valid
我尝试使用 /^( ){0,5}(\d){1,6}$/
但它不起作用,因为它不检查字符串。我也尝试了 /^( |\d){6}$/
但它不检查空格/数字的位置。现在我陷入困境,我知道有一个解决方案,但我自己找不到,也无法通过互联网搜索。提前致谢。
最佳答案
您可以使用正向先行 (?=
来断言 6 个字符的长度:
^(?=.{6}$)[ ]{0,5}[0-9]{1,6}$
说明
^
- 字符串开头(?=.{6}$)
正向前瞻,断言直接位于右侧的内容为 6 个字符并断言字符串结尾。[ ]{0,5}[0-9]{1,6}
匹配空格 0-5 次,匹配数字 1-6 次$
字符串结尾
关于具有固定长度、前导空格和数字的 JavaScript 正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55264452/