Javascript 匹配字符和最大长度的正则表达式
我正在尝试用javascript创建一个符合这些要求的正则表达式Javascript 匹配字符和最大长度的正则表达式,javascript,regex,Javascript,Regex,我正在尝试用javascript创建一个符合这些要求的正则表达式 以0开头,但第二个数字不是0 11-12个字符长 必须正好包含1个空格 没有其他特殊字符或字母,只有数字 到目前为止,我已经想出了 ^[0][1-9][\d]{9,10}$ 但是,这将仍然匹配2个空格或没有空格。到目前为止,我还没有找到一种方法,在数字中的任何地方只需要一个空格。我已经尝试了积极的前瞻,并在网上找到了其他例子,但是让量词与需求配合使用被证明是困难的。您可以使用 /^(?=.{11,12}$)(?=\S* \S*
- 以0开头,但第二个数字不是0
- 11-12个字符长
- 必须正好包含1个空格
- 没有其他特殊字符或字母,只有数字
^[0][1-9][\d]{9,10}$
但是,这将仍然匹配2个空格或没有空格。到目前为止,我还没有找到一种方法,在数字中的任何地方只需要一个空格。我已经尝试了积极的前瞻,并在网上找到了其他例子,但是让量词与需求配合使用被证明是困难的。您可以使用
/^(?=.{11,12}$)(?=\S* \S*$)0[ 1-9][ \d]+$/
见
详细信息:
-字符串的开头^
-总长度必须为11到12个字符(只需进行前瞻性检查,如果不满足条件,则匹配失败)(?=.{11,12}$)
-只能有1个空格(仅进行前瞻检查,如果不满足条件,则匹配失败)(?=\S*\S*$)
-匹配的第一个字符必须是0
0
-第二个字符是除[1-9]
或空格以外的任何数字0
-1个或多个数字或空格[\d]+
-字符串结束$
/^0[1-9](?=\d* \d+$)[ \d]{9,11}$/
确保在第一个字符后至少有一个空格(?=\d*\d+$)
- 使用
作为开始时已匹配的两个字符(零和非零){9,11}
- 以下是我的尝试。它比Wiktors稍快一点。既然时间已经过去了,我就分享它
^(?=\d* \d*$)0[1-9 ][\d ]{9,10}$
.非正则表达式解决方案是否适用于您?它正在HTML5模式属性中使用,因此需要是一个regexAh brilliant,演示提供了一个很好的分解,以帮助您理解它。我从来没有想过使用lookahead来检查长度。非常感谢。给定的要求意味着应该允许一个空格作为第二个空格。你的正则表达式没有。问题只是说
必须正好包含1个空格,这就是我的答案所允许的。问题还说:第二个数字不是0(不是数字部分)。它的要求有点粗略以0开头,但第二个数字不是0,这意味着空格可以是第二个。但这也意味着不允许使用0…
,因为第二个数字是0
。不知道……;)