我需要一个正则表达式,让我可以
1)仅允许数字[已解决]
2)十进制最多2位[已解决]
3)在开始的示例中只允许1个零:'0.12'=>需要帮助
4)不允许仅使用零示例:'0000'=>需要帮助
下面是我目前使用的正则表达式,仅允许数字和小数点后2位:
Regex: /^\s*(?=.*[1-9])\d*(?:\.\d{0,2})?\s*$/g
提前感谢
基本上是您要在表达式中查找或,为零或以1-9
开头的任何数字。
const re = /^(?:0|[1-9]\d*)(?:\.\d{1,2})?$/
;[
'0',
'00',
'10',
'010',
'123',
'123.',
'123.0',
'123.00',
'123.000',
'0.1',
'0.10',
'0.100',
'00.10'
]
.forEach(
v => console.log(re.test(v) ? '✓' : '✗', v)
)
为了简洁起见,我省略了开头和结尾的空格匹配器-但是通常来说,如果允许的话,在使用它之前将.trim()
的输入也更干净一点。还请注意,如果句号后面没有小数,则可能不需要匹配该句号。
.trim()