方法借鉴其他作者,我进行了错误汇总并完善,记录以备后用;
首先建立一个功能函数,用于检查输入浮点数是否合法:
function CheckValueError(theFloat){}//返回True表示错误,返回False表示通过
先进行判断是否为空:
var len = theFloat.length; if (len == 0) { return true; }
再检查是否包含'-'号且不再首位:
if (theFloat.indexOf("-") != -1) {
if (theFloat.indexOf("-") != 0) { return true; } else { flag = "-"; theFloat = theFloat.substring(1); len = len - 1;//若为负值,先去除首位的负号,检测后面的字符 } }
再检查非法字符和小数点数量及位置:
for (var i = 0; i < len; i++) { var oneNum = theFloat.substring(i, i + 1); if (oneNum == ".") dotNum++; if ((oneNum < "0" || oneNum > "9") && oneNum != ".") { return true; } if (dotNum > 1 || (oneNum == "." && (i == 0 || i == len - 1))) { return true; } }
最后检查0在首位且第二位不是小数点:
if (len > 1 && theFloat.substring(0, 1) == "0") { if (theFloat.substring(1, 2) != ".") { return true; } }
全部检查通过后,最后返回False:
Return False;
标签:return,oneNum,javascript,len,theFloat,substring,判定,true,浮点数 From: https://www.cnblogs.com/cfsl/p/16962373.html