我使用这个正则表达式来验证 float :
var reg = /\d+\.?\d+/;
但它正在验证这是真的:
"11.34x"
"11.34abs"
"1a1.34abs"
\d
应该只匹配数字。怎么了?
最佳答案
如果您不锚定正则表达式,它将匹配包含匹配子字符串的字符串。
尝试:
var reg = /^\d+\.?\d+$/;
^
匹配测试字符串的开头,$
匹配结尾。因此,该正则表达式将仅匹配仅包含数字和最多一个“.”的字符串。
编辑 - 正如所指出的,您使用 +
量词意味着您的正则表达式需要数字;如果有小数点,则两边都需要数字。也许这就是您想要的,也许不是。
关于javascript - float 正则表达式产生意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14905348/