javascript-判定输入浮点数是否合法

方法借鉴其他作者,我进行了错误汇总并完善,记录以备后用;

首先建立一个功能函数,用于检查输入浮点数是否合法:

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;

 

posted @ 2022-12-07 10:32  [春风十里]  阅读(163)  评论(0编辑  收藏  举报