我需要使用正则表达式验证一些输入。
以下是一些示例用例和预期结果。
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
而第二个字符是numerical[0-9]
则它是无效的。
我已经尝试了这个但是它没有用。
[0][0-9]
答案 0 :(得分:11)
试试这个正则表达式:
^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
答案 1 :(得分:3)
您可以使用以下内容: -
var a = "0001";
/^[0][0-9]/.test(a)
答案 2 :(得分:3)
你可以尝试这种模式,想法是使用锚点^
(用于开始)和$
(用于结束)来限制你想要的结果:
^0+\d*(?:\.\d+)?$
答案 3 :(得分:1)
0+[1-9][0-9]*
匹配至少一个零,后跟非零数字,后跟任意数量的数字。与单独的0不匹配。
答案 4 :(得分:1)
这一个:
/0\d+/.test("0001")
// true
如果“0”必须是第一个字符,那么:
/^0\d+/.test("0001")