正则表达式在输入开始时连续两个零

时间:2017-01-22 20:21:17

标签: regex

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

我跟随正则表达式  / [^ 0-9] + /克 这有一个问题,因为它允许在输入开始时有多个零是错误的,理想情况下我想要一些可以在开始时允许一个零的东西,如果用户首先输入零,然后是任何数字,但在开始时不再为零有效输入应为0,1,01,099,100,10000000,980980567000等 输入无效00,001,00100,00100000,000087990432等

3 个答案:

答案 0 :(得分:2)

匹配无效输入:add eax, ebx

匹配有效输入:EAX

/^00\d*/代表字符串
的开头 /^(?!00)\d/*匹配两个连续的零 ^是两个连续零的负前瞻 00匹配任何数字序列

答案 1 :(得分:0)

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

要匹配以“00”开头的字符串,您的正则表达式将为/^00/。如果您需要特定的数字字符串/^00[0-9]*/

答案 2 :(得分:0)

Regexp匹配器很擅长说什么必须匹配,但告诉匹配器什么是不匹配的是一个小技巧。要取消匹配以00开头的所有字符串,您必须匹配以0开头的所有字符串以及以0开头的所有字符串都不会继续使用0 (作为空字符串有效,因为字符串0不以00开头),所以一个这样的正确表达式可能是:

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

有关详细信息,请参阅demo