当前位置:  开发笔记 > 编程语言 > 正文

使用RegEx的JavaScript小数位限制

如何解决《使用RegEx的JavaScript小数位限制》经验,为你挑选了2个好方法。

我对文本框进行了一些客户端验证,它只允许最多两个小数位的数字而没有其他输入.

此脚本仅用于输入数值,但需要进行调整以使其可以采用小数点后跟最多两位小数.

我尝试过这样的事情/[^\d].\d{0,2},但是替换电话不起作用,我不知道怎么做.



注意

我需要匹配一个空字符串.如果提供了空字符串并且提交了表单,则该值默认为零.



1> AnthonyWJone..:

的.字符在RegEx中具有特殊含义,因此需要转义.

/^(?:\d*\.\d{1,2}|\d+)$/

这匹配123.45,123.4,123和.2,.24但不匹配emtpy字符串,123.,123.456



2> Georg Schöll..:

. 在RegEx中意味着:任何角色,你必须在它前面放一个反斜杠. \.

这会更好:

/^\d+(\.\d{0,2})?$/

我包括的部分:

点前面至少需要1个数字.如果您不想要这个,请替换为+,*但是也会匹配空字符串.

如果您有小数值,则需要前面的点.

数字后面应该没有任何内容,$代表输入结束.

对于替换部分,您还应该包括点

f.value.replace(/[^\d\.]/g, "")

编辑:

如果它是用于输入的实时验证,为什么不直接拦截keyevents并测试它们的有效性(通过在内存中创建字符串)或只删除字段中的最后一个字符?

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有