验证数字是否以前导零开始的Javascript正则表达式

验证数字是否以前导零开始的Javascript正则表达式,javascript,regex,Javascript,Regex,我需要使用正则表达式验证一些输入 下面是一些示例用例和预期结果 0001 - Matched 001 - Matched 01 - Matched 00.12312 - Matched 000.1232 - Matched 1 - Not matched 20 - Not matched 0.1 - Not matched 0.123123 - Not matched 像这样的正则表达式会是什么样子?如果第一个字符是0,第二个字

我需要使用正则表达式验证一些输入

下面是一些示例用例和预期结果

0001     - Matched
001      - Matched
01       - Matched
00.12312 - Matched
000.1232 - Matched
1        - Not matched
20       - Not matched
0.1      - Not matched
0.123123 - Not matched
像这样的正则表达式会是什么样子?如果第一个字符是
0
,第二个字符是
数值[0-9]
,则该字符无效

我试过这个,但不起作用

[0][0-9]

您可以使用以下内容:-

var a = "0001";
/^[0][0-9]/.test(a)

您可以尝试此模式,其想法是使用锚定
^
(用于开始)和
$
(用于结束)来限制您正在查找的结果:

^0+\d*(?:\.\d+)?$
试试这个正则表达式:

^0[0-9].*$
它将匹配以
0
开头,后跟数字的任何内容

它将“匹配”您所谓的“无效”

测试代码应使其更清晰:

var regExp = /^0[0-9].*$/
console.log(regExp.test("0001")); // true
console.log(regExp.test("001")); // true
console.log(regExp.test("01")); // true
console.log(regExp.test("00.12312")); // true
console.log(regExp.test("000.1232")); // true
console.log(regExp.test("1")); // false
console.log(regExp.test("20")); // false
console.log(regExp.test("0.1")); // false
console.log(regExp.test("0.123123")); // false
至少匹配一个零,后跟一个非零数字,后跟任意数量的数字。与单独的0不匹配。

此项:

/0\d+/.test("0001")
// true
如果“0”必须是第一个字符,则:

/^0\d+/.test("0001")

那么00.1234和000.1234等呢?两者都是匹配的,并且它们的第一个字符是
0
,第二个字符是
0-9
。这需要引号,否则JS将从数字(1):var a=“0001”:)中删除前导零。我忘了加引号了。你可以省略
*$
,因为那部分总是matches@Pumbaa80酷,谢谢!这是特定于测试方法的,对吗?不,
*
匹配任何东西。因此,将
*$
添加到RE的末尾意味着:测试行应该以…任何内容结尾!当一行包含
foo
且下一行以
bar
开头时,
foo.*$bar
将匹配时,它在多行REs中可能很有用。这相当于
foo.*^bar
啊,我想我误解了你的问题。当然,
RegExp.exec
String.match
String.replace
在包含/省略
*$
@acdcjunior时会产生不同的结果,而不是打开一个新问题我正在使用您的答案,但是我如何检查总共11个数字的值<代码>^0[0-9]{11}.$我尝试了此操作,但无效。
/^0\d+/.test("0001")