Regex 两个连续零'的正则表达式;在输入的开始处是s

Regex 两个连续零'的正则表达式;在输入的开始处是s,regex,Regex,我需要编写正则表达式,它可以禁止输入在输入的开始处有两个连续的零 我现在正在跟踪正则表达式 /[^0-9]+/g 这有一个问题,因为它允许在输入开始时有尽可能多的零,这是错误的,理想情况下,如果用户先输入零,然后输入任何数字,但在开始时没有更多的零,那么有效输入应该是0,1019910010000000,980980567000等等 无效输入0000100000100000、00008790432等与无效输入匹配:/^00\d*/ 匹配有效输入:/^(?!00)\d/* ^代表字符串的开头 00

我需要编写正则表达式,它可以禁止输入在输入的开始处有两个连续的零

我现在正在跟踪正则表达式 /[^0-9]+/g 这有一个问题,因为它允许在输入开始时有尽可能多的零,这是错误的,理想情况下,如果用户先输入零,然后输入任何数字,但在开始时没有更多的零,那么有效输入应该是0,1019910010000000,980980567000等等
无效输入0000100000100000、00008790432等与无效输入匹配:
/^00\d*/

匹配有效输入:
/^(?!00)\d/*

^
代表字符串的开头
00
匹配两个连续的零
(?!00)
是两个连续零的负前瞻

\d*
匹配任何数字序列

匹配无效输入:
/^00\d*/

匹配有效输入:
/^(?!00)\d/*

^
代表字符串的开头
00
匹配两个连续的零
(?!00)
是两个连续零的负前瞻

\d*
匹配任何数字序列

要匹配字符串开头的任何静态字符串(包括“00”),可以使用
^
锚定


要匹配以“00”开头的字符串,您的正则表达式应该是
/^00/
。如果您特别需要数字字符串,
/^00[0-9]*/
要匹配字符串开头的任何静态字符串(包括“00”),可以使用
^
锚定


要匹配以“00”开头的字符串,您的正则表达式应该是
/^00/
。如果您想要特定的数字字符串,
/^00[0-9]*/
Regexp匹配器擅长说出必须匹配的内容,但告诉匹配器哪些内容不需要匹配有点麻烦。要取消匹配以
00
开头的所有字符串,必须匹配以
0
以外的所有字符串,以及以
0
开头的所有字符串不以
0
开头的所有字符串(空字符串有效,因为字符串
0
不以
00
开头),因此,这样一个正确的表达可以是:

^[^0].*$|^0([^0].*)?$

有关详细信息,请参阅。

Regexp匹配器擅长说出必须匹配的内容,但告诉匹配器哪些内容不需要匹配有点棘手。要取消匹配以
00
开头的所有字符串,必须匹配以
0
以外的所有字符串,以及以
0
开头的所有字符串不以
0
开头的所有字符串(空字符串有效,因为字符串
0
不以
00
开头),因此,这样一个正确的表达可以是:

^[^0].*$|^0([^0].*)?$

有关详细信息,请参阅。

您希望正则表达式匹配有效或无效输入吗?此外,所写的问题似乎与angularjs无关。请删除该标记。您希望您的正则表达式匹配有效或无效的输入吗?此外,所写的问题似乎与angularjs无关。请删除该标记。如果我不清楚,我很抱歉,但我正在尝试编写正则表达式,如果发现无效字符,请将该无效字符替换为空字符串(“”)。在我的例子中,如果字符仅为正数且不以两个或多个零开头,则字符应有效。变量模式=/^00[0-9]*/;var parsed=val.replace(模式“”);注意:val是一种输入,如abcdgj、0010000、000111198等,但使用您的表达式,它允许输入任何其他字符,如字母表、特殊字符、负数等,这在我的场景中是错误的。如果您的问题是关于替换零件字符串,您能更新它以准确地说明您要查找的内容吗?很抱歉,如果我不清楚,但我正在尝试编写正则表达式,如果发现无效字符,则将该无效字符替换为空字符串(“”)。在我的例子中,如果字符仅为正数且不以两个或多个零开头,则字符应有效。变量模式=/^00[0-9]*/;var parsed=val.replace(模式“”);注意:val是一种输入,如abcdgj、0010000、000111198等,但使用您的表达式,它允许输入任何其他字符,如字母表、特殊字符、负数等,这在我的场景中是错误的。如果您的问题是关于替换零件字符串,你能不能更新它,准确地说明你在找什么?如果我不清楚,我很抱歉,但我正在尝试编写正则表达式,如果发现无效字符,然后用空字符串(“”)替换无效字符。在我的情况下,字符应该是有效的,如果它们只是正数,并且不以两个或更多的零开头。var模式=/^[0]{0,1}[1-9]\d{0,}/;var parsed=val.replace(模式“”);注:val是一种输入,如abcdgj、0010000、000111198等,但使用上述表达式,它允许输入任何其他字符,如字母表、特殊字符、,负数等等,这在我的场景中是错误的。如果我不清楚,我很抱歉,但我正在尝试编写正则表达式,如果找到无效字符,然后用空字符串(“”)替换该无效字符。在我的情况下,如果字符仅为正数,并且不以两个或更多零开头,则字符应该是有效的。var模式=/^[0]{0,1}[1-9]\d{0,}/;var parsed=val.replace(模式“”);注:val是一种输入,如abcdgj、0010000、000111198等,但使用上述表达式,它允许输入任何其他字符,如字母、特殊字符、负数等,这在我的场景中是错误的。