目前我正试图找到一个正则表达式,它做以下事情1)支票号码2)允许最大长度为33)不以0开头我有下面的正则表达式,它工作正常^[0-9]{1,3}$上面的正则表达式只允许最多有3位数的数字,但我不知道如何在开始时防止0。代码
^[0-9]{1,3}$
var numericRegex = new RegExp("^[1-9][0-9]{0,2}$"); numericRegex.test(123) //false
让我知道我错过了什么谢谢
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
fjnneemd2#
或者可以用
^(?!0)\d{1,3}$
vlurs2pr3#
最短的正则表达式应为
^[1-9]{1}\d{2}$
3条答案
按热度按时间ylamdve61#
试试这样:
或:
在node.js中,可以这样使用:
另一个答案也很好:
fjnneemd2#
或者可以用
vlurs2pr3#
最短的正则表达式应为