JavaScript js 不用正则验证小数完美方法

在javascript验证表单、文本域、整数小数的方式多种多样。今天我也写了一个验证小数的解决方案,不需要用户点击什么按钮或是失去焦点后。给予用户反感的alert警告提示。这里不能输入的是不容许出现在文本框中的。就这样也不需要经常alert来提示用户输入错误。此验证方法很简单,但设计也很巧妙。使用的是我们常用split、array、substring等方法函数设计而成; <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>小数验证</title> <script> String.prototype.replaceAll = function(s1, s2) { return this.replace(new RegExp(s1, "gm"), s2); //g全局、m多行 } String.prototype.replaceAll2Excep = function(s1, s2) { var temp = this; while (temp.indexOf(s1) != -1) { temp = temp.replace(s1, s2); } return temp; } /*** * 次验证方法很简单,但设计也很巧妙。使用的是我们常用split、array、substring等 * @author hoojo * @param o 验证的对象,即当前文本域 * @param precision 精确多少位小数 * @version 3.1 **/ function checkFloat(o, precision) { var val = o.value;//验证小数 if (parseFloat(val) != val) { var ar = val.split(''); for(var i = 0; i < ar.length; i++) { var charCode = ar[i].charCodeAt(0); if (charCode > 57 || charCode < 46 || charCode == 47) { //o.value = val.replaceAll(ar[i], '');这个replaeAll里面用的正则,/*+是特殊字符,所以才不能替换的 o.value = val.replaceAll2Excep(ar[i], ''); } } } var ary = o.value.split('.'); if (ary.length >= 2) { if (ary[0] == "") { ary[0] = 0; } var temp = ary[1]; if (ary[1].length > precision) { ary[1] = ary[1].substring(0, precision); } o.value = ary[0] + "." + ary[1]; if (0 == precision) { o.value = ary[0]; } } else { var vals = o.value; if (vals != "" && !isNaN(vals)) { o.value = parseInt(vals); } } } </script> </head> <body> <input type=text value="" οnkeyup="checkFloat(this, 1)" maxlength="9"/> </body> </html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值