javascript - 正则表达式在键入时验证数字
问题描述
我想验证一个数字,而用户开始在输入字段中输入。我尝试使用以下正则表达式,它没有完全工作。
/^\d+(?:\.\d{1,3})?$/
正如我所料,以下情况很满意。
120
---> 真,
120.2
---> 真,
120.123
--> 真
120g
--> 假
正如我预期的那样,它不能满足单个案例。
120.
--> 返回假 --> 但我期待的是真的。
谁能帮我。
谢谢
解决方案
您需要可能的数字.
是可选的,以防用户刚刚输入句点但还没有进一步输入。使用\d{0,3}
而不是\d{1,3}
:
console.log(/^\d+(?:\.\d{0,3})?$/.test('120.'));
如果您想验证没有尾随句点,请在用户指示他们完成输入后执行此操作,例如在表单提交时,在这种情况下您可以使用原始正则表达式。
推荐阅读
- javascript - 使用参数但未包含在声明中的函数?
- python - 如何在 OR-TOOLS 中的 FOR 循环内声明动态变量
- python - IndexError:索引 8 超出轴 1 的范围,大小为 8
- ios - 无法让 UISwitch 约束工作 - swift 4
- swift - 如何在 SwiftUI 视图中访问 UIView 子类的属性?
- arrays - BBC Basic 将一个数组添加到另一个数组
- javascript - 使用正则表达式删除字符串上的 '
- javascript - How do you push items to an object in Angular JS?
- javascript - 如何在 JavaScript 中并不总是可见的警报中包含带有 onclick 的链接?
- tomcat - 如何将 servlet 重定向到静态 html 页面?