• ag亚洲国际官网--Home

    新闻中心

    互联网+期间,说建站,谈运营与网络营销

    以后地位:首页 > 新闻中心 > 前端开辟 > jquery validation验证身份证号、护照、德律风号码、email

    jquery validation验证身份证号、护照、德律风号码、email

    ###
    $.validator.setDefaults({
    submitHandler: function(form) {
    form.submit();
    }
    });
    // 字符验证
    jQuery.validator.addMethod("stringCheck", function(value, element) {
    return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);
    }, "只能包罗中笔墨、英笔墨母、数字和下划线");
    // 中笔墨两个字节
    jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {
    var length = value.length;
    for(var i = 0; i < value.length; i++){
    if(value.charCodeAt(i) > 127){
    length++;
    }
    }
    return this.optional(element) || ( length >= param[0] && length <= param[1] );
    }, "请确保输出的值在3-15个字节之间(一其中笔墨算2个字节)");
     
    // 身份证号码验证
    jQuery.validator.addMethod("isIdCardNo", function(value, element) {
    return this.optional(element) || idCardNoUtil.checkIdCardNo(value);
    }, "请准确输出您的身份证号码");
    //护照编号验证
    jQuery.validator.addMethod("passport", function(value, element) {
    return this.optional(element) || checknumber(value);
    }, "请准确输出您的护照编号");
     
    // 手机号码验证
    jQuery.validator.addMethod("isMobile", function(value, element) {
    var length = value.length;
    var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
    return this.optional(element) || (length == 11 && mobile.test(value));
    }, "请准确填写您的手机号码");
     
    // 德律风号码验证
    jQuery.validator.addMethod("isTel", function(value, element) {
    var tel = /^\d{3,4}-?\d{7,9}$/; //德律风号码款式010-12345678
    return this.optional(element) || (tel.test(value));
    }, "请准确填写您的德律风号码");
     
    // 联系德律风(手机/德律风皆可)验证
    jQuery.validator.addMethod("isPhone", function(value,element) {
    var length = value.length;
    var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
    var tel = /^\d{3,4}-?\d{7,9}$/;
    return this.optional(element) || (tel.test(value) || mobile.test(value));
     
    }, "请准确填写您的联系德律风");
     
    // 邮政编码验证
    jQuery.validator.addMethod("isZipCode", function(value, element) {
    var tel = /^[0-9]{6}$/;
    return this.optional(element) || (tel.test(value));
    }, "请准确填写您的邮政编码");
     
    //开端验证
    $('#commentForm').validate({
     
    rules: {
    username: {
    required:true,
    stringCheck:true,
    byteRangeLength:[3,15]
    },
    email:{
    required:true,
    email:true
    },
    phone:{
    required:true,
    isMobile:true
    },
    address:{
    required:true,
    stringCheck:true,
    byteRangeLength:[3,100]
    },
    card:{
    required:true,
    isIdCardNo:true
     
    },
    passport:{
    required:true,
    passport:true
     
    }
    },
     
     
    messages:{
    username: {
    required: "请填写用户名",
    stringCheck: "用户名只能包罗中笔墨、英笔墨母、数字和下划线",
    byteRangeLength: "用户名必需在3-15个字符之间(一其中笔墨算2个字符)"
    },
    email:{
    required: "<font color=red>请输出一个Email地点</fond>",
    email: "请输出一个无效的Email地点"
    },
    phone:{
    required: "请输出您的联系德律风",
    isPhone: "请输出一个无效的联系德律风"
    },
    address:{
    required: "请输出您的联系地点",
    stringCheck: "请准确输出您的联系地点",
    byteRangeLength: "请详确您的联系地点以便于ag亚洲联系您"
    },
    card:{
    required:"请输出身份证号",
    isIdCardNo:"请输出准确的身份证号"
    },
    passport:{
    required:"请输出护照编号",
    passport:"请输出准确的护照编号"
    }
    },
     
     
    focusInvalid: false,
    onkeyup: false,
     
     
    errorPlacement: function(error, element) {
    error.appendTo( element.parent());
    },
    errorElement:"em",
    error:function(label){label.text(" ").addClass("error");}
    });
    })


    记得引入上面的JS文件,card.js


    var idCardNoUtil = {

      

    provinceAndCitys: {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",

    31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",

    45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",

    65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"外洋"},

    powers: ["7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"],

    parityBit: ["1","0","X","9","8","7","6","5","4","3","2"],

    genders: {male:"男",female:"女"},

    checkAddressCode: function(addressCode){

    var check = /^[1-9]\d{5}$/.test(addressCode);

    if(!check) return false;

    if(idCardNoUtil.provinceAndCitys[parseInt(addressCode.substring(0,2))]){

    return true;

    }else{

    return false;

    }

    },

    checkBirthDayCode: function(birDayCode){

    var check = /^[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))$/.test(birDayCode);

    if(!check) return false;

    var yyyy = parseInt(birDayCode.substring(0,4),10);

    var mm = parseInt(birDayCode.substring(4,6),10);

    var dd = parseInt(birDayCode.substring(6),10);

    var xdata = new Date(yyyy,mm-1,dd);

    if(xdata > new Date()){

    return false;//生日不克不及大于以后日期

    }else if ( ( xdata.getFullYear() == yyyy ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == dd ) ){

    return true;

    }else{

    return false;

    }

    },

    getParityBit: function(idCardNo){

    var id17 = idCardNo.substring(0,17);

      

    var power = 0;

    for(var i=0;i<17;i++){

    power += parseInt(id17.charAt(i),10) * parseInt(idCardNoUtil.powers[i]);

    }

      

    var mod = power % 11;

    return idCardNoUtil.parityBit[mod];

    },

    checkParityBit: function(idCardNo){

    var parityBit = idCardNo.charAt(17).toUpperCase();

    if(idCardNoUtil.getParityBit(idCardNo) == parityBit){

    return true;

    }else{

    return false;

    }

    },

    checkIdCardNo: function(idCardNo){

    //15位和18位身份证号码的根本校验

    var check = /^\d{15}|(\d{17}(\d|x|X))$/.test(idCardNo);

    if(!check) return false;

    //判别长度为15位或18位

    if(idCardNo.length==15){

    return idCardNoUtil.check15IdCardNo(idCardNo);

    }else if(idCardNo.length==18){

    return idCardNoUtil.check18IdCardNo(idCardNo);

    }else{

    return false;

    }

    },

      

    //校验15位的身份证号码

    check15IdCardNo: function(idCardNo){

    //15位身份证号码的根本校验

    var check = /^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(idCardNo);

    if(!check) return false;

    //校验地点码

    var addressCode = idCardNo.substring(0,6);

    check = idCardNoUtil.checkAddressCode(addressCode);

    if(!check) return false;

    var birDayCode = '19' + idCardNo.substring(6,12);

    //校验日期码

    return idCardNoUtil.checkBirthDayCode(birDayCode);

    },

      

    //校验18位的身份证号码

    check18IdCardNo: function(idCardNo){

    //18位身份证号码的根本款式校验

    var check = /^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(idCardNo);

    if(!check) return false;

    //校验地点码

    var addressCode = idCardNo.substring(0,6);

    check = idCardNoUtil.checkAddressCode(addressCode);

    if(!check) return false;

    //校验日期码

    var birDayCode = idCardNo.substring(6,14);

    check = idCardNoUtil.checkBirthDayCode(birDayCode);

    if(!check) return false;

    //验证校检码

    return idCardNoUtil.checkParityBit(idCardNo);

    },

      

    formateDateCN: function(day){

    var yyyy =day.substring(0,4);

    var mm = day.substring(4,6);

    var dd = day.substring(6);

    return yyyy + '-' + mm +'-' + dd;

    },

      

    //获赢了这封信息

    getIdCardInfo: function(idCardNo){

    var idCardInfo = {

    gender:"", //性别

    birthday:"" // 出生日期(yyyy-mm-dd)

    };

    if(idCardNo.length==15){

    var aday = '19' + idCardNo.substring(6,12);

    idCardInfo.birthday=idCardNoUtil.formateDateCN(aday);

    if(parseInt(idCardNo.charAt(14))%2==0){

    idCardInfo.gender=idCardNoUtil.genders.female;

    }else{

    idCardInfo.gender=idCardNoUtil.genders.male;

    }

    }else if(idCardNo.length==18){

    var aday = idCardNo.substring(6,14);

    idCardInfo.birthday=idCardNoUtil.formateDateCN(aday);

    if(parseInt(idCardNo.charAt(16))%2==0){

    idCardInfo.gender=idCardNoUtil.genders.female;

    }else{

    idCardInfo.gender=idCardNoUtil.genders.male;

    }

      

    }

    return idCardInfo;

    },

    getId15:function(idCardNo){

    if(idCardNo.length==15){

    return idCardNo;

    }else if(idCardNo.length==18){

    return idCardNo.substring(0,6) + idCardNo.substring(8,17);

    }else{

    return null;

    }

    },

    getId18: function(idCardNo){

    if(idCardNo.length==15){

    var id17 = idCardNo.substring(0,6) + '19' + idCardNo.substring(6);

    var parityBit = idCardNoUtil.getParityBit(id17);

    return id17 + parityBit;

    }else if(idCardNo.length==18){

    return idCardNo;

    }else{

    return null;

    }

    }

    };

    //验证护照能否准确

    function checknumber(number){

    var str=number;

    //在JavaScript中,正则表达式只能利用"/"扫尾和完毕,不克不及利用双引号

    var Expression=/(P\d{7})|(G\d{8})/;

    var objExp=new RegExp(Expression);

    if(objExp.test(str)==true){

    return true;

    }else{

    return false;

    }

    };


    首页
    案例中心
    关于ag亚洲
    联系ag亚洲