数字校验1

function formatting(num) {
            //非空判断
            if (num == "" || num == null || num == undefined || num.indexOf("-") == 0 || isNaN(num)) {
                return 0;
            }
            //以.开头,补0
            if (num.indexOf(".") == 0) {
                num = "0" + num;
            }
            //得到小数点的位置
            var number = num.indexOf(".");
            //以点结束
            if (number = num.length - 1) {
                num=num.substr(0, num.length - 1)
            }
            //小于1的小数
            if (num.indexOf("0.") == 0) {//如果是以0.开头
                if (num.length > 2) {
                    //截取小数点都的数据
                    var str2 = num.substring(number + 1);
                    //判断小数
                    if (str2.length <= 4) {
                        return num;
                    } else {
                        var str3 = str2.substr(0, 4);
                        var str4 = "0." + str3
                        return str4;
                    }
                } else {
                    return 0;
                }
            } else {//大于等于1的数
                if (number == -1) {//没有小数点
                    if (num.length <= 10) {
                        return num;
                    } else {
                        var str5 = num.substr(0, 10);
                        return str5;
                    }
                } else {//有小数点
                    //小数点前的数据
                    var str6 = num.substring(0, number);
                    //小数点后的数据
                    var str7 = num.substring(number + 1);
                    if (str6.length > 10) {
                        var str8 = num.substr(0, 10);
                        return str8;
                    }
                    if (str7.length > 4) {
                        var str9 = str7.substr(0, 4);
                        var str10 = str6 + "." + str9;
                        return str10;
                    }
                    return num;
                }
            }
        }


改进版:
function myformat(num, integerlength, decimalslength) {
            var  return0=parseFloat(0).toFixed(decimalslength);
            if (integerlength == null || integerlength == "" || integerlength == undefined) {
                integerlength = 10;
            }
            if (decimalslength == null || decimalslength == "" || decimalslength == undefined) {
                decimalslength = 2;
            }
            if(num==""||num==null||num==0||isNaN(num)||num==undefined||num<0){
                return return0;
            }else{
                var number = num.indexOf(".");
                //以.开头
                if(number==-1){//没有小数点
                    return parseFloat(num.length>integerlength?num.substr(0,integerlength):num).toFixed(decimalslength);
                }else if(number==0){//以点开头
                    num=num.substr(number+1).length>decimalslength?num.substr(number+1).substr(0,decimalslength):num.substr(number+1);
                    return "0."+num;
                }else if(number==num.length-1){//以点结尾
                    num=parseFloat(num.substr(0, num.length - 1).length>integerlength?num.substr(0,integerlength):num.substr(0, num.length - 1)).toFixed(decimalslength);
                    return num;
                }else {//正常小数
                    var num1=num.substring(0,number);
                    var num2=num.substring(number+1);
                    if(num1.length>integerlength){
                        return parseFloat(num1.substr(0,integerlength)).toFixed(decimalslength);
                    }else{
                        num2=num2.length>decimalslength?num2.substr(0,decimalslength):num2;
                        return num1+"."+num2;
                    }
                }
            }
        }

 

 

 

posted @ 2015-12-11 09:20  宋发准  阅读(155)  评论(0编辑  收藏  举报