js的校验

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/farxix/article/details/80682641

1、判断是否为数字(整数、小数)

//使用isNaN()函数
//isNaN()的缺点就在于 null、空格以及空串会被按照0来处理
//isNaN: Not a Number
function isRealNum(val){
    // isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除
    if(val === "" || val ==null){
        return false;
    }
    if(!isNaN(val)){
        return true;
    }else{
        return false;
    }
} 

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;
    }

}
//小数
var n=3.143423423;
alert(n.toString().split(".")[1].length); 

2、金额


function changeMoneyToChinese(money){
            var cnNums = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); //汉字的数字
            var cnIntRadice = new Array("","拾","佰","仟"); //基本单位
            var cnIntUnits = new Array("","万","亿","兆"); //对应整数部分扩展单位
            var cnDecUnits = new Array("角","分","毫","厘"); //对应小数部分单位
            //var cnInteger = "整"; //整数金额时后面跟的字符
            var cnIntLast = "元"; //整型完以后的单位
            var maxNum = 999999999999999.9999; //最大处理的数字

            var IntegerNum; //金额整数部分
            var DecimalNum; //金额小数部分
            var ChineseStr=""; //输出的中文金额字符串
            var parts; //分离金额后用的数组,预定义
            if( money == "" ){
                return "";
            }
            money = parseFloat(money);
            if( money >= maxNum ){
                $.alert('超出最大处理数字');
                return "";
            }
            if( money == 0 ){
                //ChineseStr = cnNums[0]+cnIntLast+cnInteger;
                ChineseStr = cnNums[0]+cnIntLast
                //document.getElementById("show").value=ChineseStr;
                return ChineseStr;
            }
            money = money.toString(); //转换为字符串
            if( money.indexOf(".") == -1 ){
                IntegerNum = money;
                DecimalNum = '';
            }else{
                parts = money.split(".");
                IntegerNum = parts[0];
                DecimalNum = parts[1].substr(0,4);
            }
            if( parseInt(IntegerNum,10) > 0 ){//获取整型部分转换
                zeroCount = 0;
                IntLen = IntegerNum.length;
                for( i=0;i<IntLen;i++ ){
                    n = IntegerNum.substr(i,1);
                    p = IntLen - i - 1;
                    q = p / 4;
                    m = p % 4;
                    if( n == "0" ){
                        zeroCount++;
                    }else{
                        if( zeroCount > 0 ){
                            ChineseStr += cnNums[0];
                        }
                        zeroCount = 0; //归零
                        ChineseStr += cnNums[parseInt(n)]+cnIntRadice[m];
                    }
                    if( m==0 && zeroCount<4 ){
                        ChineseStr += cnIntUnits[q];
                    }
                }
                ChineseStr += cnIntLast;
                //整型部分处理完毕
            }
            if( DecimalNum!= '' ){//小数部分
                decLen = DecimalNum.length;
                for( i=0; i<decLen; i++ ){
                    n = DecimalNum.substr(i,1);
                    if( n != '0' ){
                        ChineseStr += cnNums[Number(n)]+cnDecUnits[i];
                    }
                }
            }
            if( ChineseStr == '' ){
                //ChineseStr += cnNums[0]+cnIntLast+cnInteger;
                ChineseStr += cnNums[0]+cnIntLast;
            }/* else if( DecimalNum == '' ){
                ChineseStr += cnInteger;
                ChineseStr += cnInteger;
            } */
            return ChineseStr;
        }

3、身份证

function testid(id) {
     // 1 "验证通过!", 0 //校验不通过
        var format = /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/;
        //号码规则校验
        if(!format.test(id)){
            return {'status':0,'msg':'身份证号码不合规'};
        }
        //区位码校验
        //出生年月日校验   前正则限制起始年份为1900;
        var year = id.substr(6,4),//身份证年
            month = id.substr(10,2),//身份证月
            date = id.substr(12,2),//身份证日
            time = Date.parse(month+'-'+date+'-'+year),//身份证日期时间戳date
            now_time = Date.parse(new Date()),//当前时间戳
            dates = (new Date(year,month,0)).getDate();//身份证当月天数
        if(time>now_time||date>dates){
            return {'status':0,'msg':'出生日期不合规'}
        }
        //校验码判断
        var c = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);   //系数
        var b = new Array('1','0','X','9','8','7','6','5','4','3','2');  //校验码对照表
        var id_array = id.split("");
        var sum = 0;
        for(var k=0;k<17;k++){
            sum+=parseInt(id_array[k])*parseInt(c[k]);
        }
        if(id_array[17].toUpperCase() != b[sum%11].toUpperCase()){
            return {'status':0,'msg':'身份证校验码不合规'}
        }
        return {'status':1,'msg':'校验通过'}
}

5、是否必录

//校验表单必录,每个必录的表单需要增加一个属性required='true' 

6、邮箱

 var reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)
 *[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
if(!reg.test(Email)){
    alert("电子邮箱格式有误!");
}

7、手机号码

var reg=/^[1][3,4,5,7,8][0-9]{9}$/;  
if(!reg.test(PhoneorTel)){   
       alert("手机号码格式有误!你确定要继续吗?");
 }

8、邮编

var reg= /^[1-9][0-9]{5}$/;
if(!reg.test(PostCode)){
     alert("邮政编码格式有误!")
}            

猜你喜欢

转载自blog.csdn.net/farxix/article/details/80682641