首页 > 解决方案 > 正则表达式在键入时验证数字

问题描述

我想验证一个数字,而用户开始在输入字段中输入。我尝试使用以下正则表达式,它没有完全工作。

/^\d+(?:\.\d{1,3})?$/

正如我所料,以下情况很满意。 120---> 真, 120.2---> 真, 120.123--> 真 120g--> 假

正如我预期的那样,它不能满足单个案例。

120.--> 返回假 --> 但我期待的是真的。

谁能帮我。

谢谢

标签: javascriptregex

解决方案


您需要可能的数字.是可选的,以防用户刚刚输入句点但还没有进一步输入。使用\d{0,3}而不是\d{1,3}

console.log(/^\d+(?:\.\d{0,3})?$/.test('120.'));

如果您想验证没有尾随句点,请在用户指示他们完成输入后执行此操作,例如在表单提交时,在这种情况下您可以使用原始正则表达式。


推荐阅读