正则校验:
var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字,//若判断正整数,则后边是:/^[1-9]+[0-9]*]*$/
if(re.test(value) == true){
// value 为数字类型
}
以上校验出现弊端:校验 1a 时发现为数字类型
于是采用以下校验方法
function isNumber(val){
var regPos = /^\d+(\.\d+)?$/; //非负浮点数
var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
if(regPos.test(val) || regNeg.test(val)){
return true;
}else{
return false;
}
}
本文探讨了如何修复正则表达式的局限,介绍了更精确的浮点数校验函数,以确保输入仅接受非负整数和负数浮点数,避免了1a这类错误。
1847

被折叠的 条评论
为什么被折叠?



