我需要一个正则表达式,它可以让我
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()
,在使用它之前,它也可能对输入更清晰。另请注意,如果句点后面没有小数,则您可能需要不匹配句点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句