Posted in Javascript onDecember 02, 2013
function validateNum(obj) { //正整数(此处用了缓存) var number = obj.data(validate).number; //小数点(此处用了缓存) var decimal = obj.data(validate).decimal; //动态基本验证正则 eval("var reg = /^[0-9]{0," + number + "}([.]?[0-9]{0," + decimal + "})$" + "/g;"); var value = obj.val(); var maxnumlen = number + decimal + 1; //最大长度 + 1(小数点) if (!reg.test(obj.val())) return false; //最大长度等于当前值的长度并且值没有"." if (maxnumlen == value.length && value.indexOf('.') <= 0) { return false; } //尝试得到"."的索引 var valueindexof = value.indexOf('.'); if (valueindexof > 0) { //如果"."索引后一位是空那么肯定是返回false if (value.charAt(valueindexof + 1) == "") { return false; } } //分割值就很容易判断出前后内容 var valuesplit = value.split('.'); //如果值的长度大于定义的正整数长度 if (value.length > number) { if (valuesplit.length == 1) { return false; } //最大长度-所定义长度 大于 最大长度 即超长 ,false. if (maxnumlen - number >= maxnumlen) { return false; } } return true; }
给元素缓存一个validate对象后,调用即可。
定义:
$("#example").data("validate", { number: 2, decimal: 2 });
调用:
validateNum($("#example));
js验证整数加保留小数点的简单实例
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@