js验证整数加保留小数点

 1 function validateNum(obj) {  2     //正整数(此处用了缓存)

 3     var number = obj.data('validate').number;  4     //小数点(此处用了缓存)

 5     var decimal = obj.data('validate').decimal;  6     //动态基本验证正则

 7     eval("var reg = /^[0-9]{0," + number + "}([.]?[0-9]{0," + decimal + "})$" + "/g;");  8     var value = obj.val();  9     var maxnumlen = number + decimal + 1; //最大长度 + 1(小数点)

10     if (!reg.test(obj.val())) return false; 11     //最大长度等于当前值的长度并且值没有"."

12     if (maxnumlen == value.length && value.indexOf('.') <= 0) { 13         return false; 14  } 15     //尝试得到"."的索引

16     var valueindexof = value.indexOf('.'); 17     if (valueindexof > 0) { 18         //如果"."索引后一位是空那么肯定是返回false

19         if (value.charAt(valueindexof + 1) == "") { 20             return false; 21  } 22  } 23     //分割值就很容易判断出前后内容

24     var valuesplit = value.split('.'); 25     //如果值的长度大于定义的正整数长度 

26     if (value.length > number) { 27         if (valuesplit.length == 1) { 28             return false; 29  } 30         //最大长度-所定义长度 大于 最大长度 即超长 ,false.

31         if (maxnumlen - number >= maxnumlen) { 32             return false; 33  } 34  } 35     return true; 36 }

给元素缓存一个validate对象后,调用即可。
定义:
$("#example").data("validate", { number: 2, decimal: 2 });
调用:
validateNum($("#example"));
 
 


 

你可能感兴趣的:(js)