regex 用于数字检查的JavaScript正则表达式,最大长度为3,并且不以0开头

mrwjdhj3  于 2023-04-07  发布在  Java
关注(0)|答案(3)|浏览(114)

目前我正试图找到一个正则表达式,它做以下事情
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

让我知道我错过了什么
谢谢

ylamdve6

ylamdve61#

试试这样:

^[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
fjnneemd

fjnneemd2#

或者可以用

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

vlurs2pr3#

最短的正则表达式应为

^[1-9]{1}\d{2}$

相关问题