在匆忙中写了个校验数字的方法,以下为demo ,验证的条件是:数值为数字,不能为负数,如果有小数,那么最多有2位小数。
代码如下:
var oValue = '-141'; // 字符串或者数字都可以
if (checkNumRule(oValue)) {
console.log('是数字,并且大于0,小数点最多有两个');
} else {
console.log('不符合验证规则');
}
function checkNumRule(val) {
console.log(val);
// 判断是否为数字
if (isNaN(val)) {
// console.log(1111);
return false
} else {
// var oNum = eval("'" + val + "'");
var oNum = val;
// console.log(oNum.split('.'));
if (oNum.indexOf('-') != -1) {
// console.log(44444);
return false;
} else {
var oVal = oNum.split('.');
if (oVal.length == 1 && oVal[0] == 0) {
return true;
} else if (oVal.length > 1 && oVal[1].trim().length == 0) {
return false
} else if (oVal.length > 1 && oVal[1].trim().length > 2) {
return false
} else if (oVal.length > 1 && oVal[0].length != 1 && oVal[0].indexOf('0') == 0) {
return false
} else if (oVal.length == 1 && oVal[0].indexOf('0') == 0) {
return false
} else {
return true;
}
}
}
}
若发现有什么问题可以交流下,有更好的方法也可以分享一下