关于输入框输入2位小数的问题
obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字
obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个, 清除多余的
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
这样的代码我找了很多类似的,但是都会出现下面的问题:
请大神支招
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
试试
或者
这个规则其实还是比较复杂的
这个判断不一定只能是一句规则式,其实可以多个判例一起用。
有一个近似简化的规则式
/^\d+(\.\d{0,2})?$/
,不过它不能保证上面的第5条规则对于字符串替换处理,其实有一个取巧的方法:
在保证了只有小数点和数字等其他规则后,可以先用小数点把字符分成多个子字符串,
比如你的
此外如果这个数是输入的,其实在输入过程中就依次处理,基本可以保证不能输入这样的情况,但粘贴的可能还是出现,所以要最终处理
重新赋值会导致光标位置异常的问题,尤其是删除其中某个字符的时候,不太好控制。
最好的是方式是 两个inpit框做整数类型处理,中间加个外置小数点。