Javascript正则表达式用于数字检查,最大长度为3,不以0开头

时间:2014-10-15 15:04:07

标签: javascript regex

目前我正在尝试找到一个正则表达式,它执行以下操作

  

1)检查号码

     

2)允许最大长度为3

     

3)不以0开头

我有以下正则表达式,工作正常

^[0-9]{1,3}$

上面的正则表达式只允许最多3位数的数字,但我不知道如何在开头阻止0。

var numericRegex = new RegExp("^[1-9][0-9]{0,2}$");
numericRegex.test(123) //false

让我知道我错过了什么

由于

2 个答案:

答案 0 :(得分:2)

试试这样:

^[1-9][0-9]?[0-9]?$ 

或:

^[1-9][0-9]{0,2}$ 

在node.js中,它可以像这样使用:

> "123".match(/^[1-9][0-9]{0,2}$/)
[ '123', index: 0, input: '123' ]
> "023".match(/^[1-9][0-9]{0,2}$/)
null
> "123".match(/^[1-9][0-9]?[0-9]?$/)
[ '123', index: 0, input: '123' ]
> "023".match(/^[1-9][0-9]?[0-9]?$/)
null

另一个答案也很好:

> "123".match(/^(?!0)\d{1,3}$/)
[ '123', index: 0, input: '123' ]
> "023".match(/^(?!0)\d{1,3}$/)
null

答案 1 :(得分:2)

或者可以用

完成
^(?!0)\d{1,3}$