我正在尝试在javascript中创建符合这些要求的正则表达式
到目前为止,我已经想到了
^[0][1-9][\d ]{9,10}$
仍然会匹配2个空格或没有空格。到目前为止,我找不到在数字中任何地方只需要一个空格的方法是不成功的。我已经尝试了积极的前瞻,并在网上找到了其他的例子,但是使量化器与要求一起工作已经证明是困难的。
答案 0 :(得分:9)
您可以使用
/^(?=.{11,12}$)(?=\S* \S*$)0[ 1-9][ \d]+$/
请参阅regex demo
<强>详细信息:强>
^
- 字符串开头(?=.{11,12}$)
- 总长度必须是11到12个字符(只是前瞻检查,如果条件不满足则会失败)(?=\S* \S*$)
- 必须只有1个空格(只是前瞻检查,如果条件不满足则会失败)0
- 第一个匹配的字符必须为0
[ 1-9]
- 第二个字符是除0
或空格[ \d]+
- 一个或多个数字或空格$
- 字符串结束。答案 1 :(得分:2)
您可以将此正则表达式用于正向前瞻:
/^0[1-9](?=\d* \d+$)[ \d]{9,11}$/
(?=\d* \d+$)
确保第一个字符后至少有一个空格{9,11}
作为2个字符已在开始时匹配(零和非零)答案 2 :(得分:2)