js验证(手机号,身份证,数字,字符,整数,数字与字符汉字的组合等)

var zzfz = zzfz || {};

/*** validate ***/
zzfz.validate = {};

//是否为空
zzfz.validate.isBlank = function(value){
    return !value || !$.trim(value);
};

//是否为数字
zzfz.validate.isNumber = function(value){
    return /^\d+$/.test(value);
};

//是否是数字+字母组合
zzfz.validate.isNumberAndLetter = function(value){
    return /^(?![^a-zA-Z]+$)(?!\D+$)/.test(value);
};

//是否是数字or字母
zzfz.validate.isNumberOrLetter = function(value){
    return /^[A-Za-z0-9]+$/.test(value);
};

//长度是否在有效范围内
zzfz.validate.isRangeLength = function(value,min,max,isByte) {
    var length = !!isByte ? zzfz.util.getByteCount(value) : value.length;
    return (length>=min && length<=max);
};

// 是否是数字或者字母
zzfz.validate.isGraphemeNumber = function(value) {
     var SPECIAL_STR = "#~!@%^&*();'\"?><[]{}\\|,:/=-+—“”‘.`$  ";
      for (i = 0; i < value.length; i++) {
        if (SPECIAL_STR.indexOf(value.charAt(i)) != -1) {
            return false;
        }
      }
      return /^[0-9a-zA-Z\u4E00-\u9FA5]{2,14}$/.test(value);
};

// 是否是邮箱格式, TRUE :是邮箱 , FALSE:不是邮箱
zzfz.validate.isEmail = function(value){
    var reggg_email = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
    return !(!reggg_email.test(value) || value.length<3 || value.length>50)
};

//是否为中文
zzfz.validate.isChinese = function(input){
    if(jQuery.trim(input)==""){
        return false;
    }
    var reg1 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{2,10}$");
    var reg2 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{1,10}[·][\u4E00-\uFA29\uE7C7-\uE7F3]{1,9}$");
    var reg3 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{1,10}[●][\u4E00-\uFA29\uE7C7-\uE7F3]{1,9}$");
    var reg4 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{2,10}[\\s][\u4E00-\uFA29\uE7C7-\uE7F3]{2,9}$");
    var reg5 = new RegExp("^[\u4E00-\uFA29\uE7C7-\uE7F3]{2,10}[\\-][\u4E00-\uFA29\uE7C7-\uE7F3]{2,9}$");
    if (!(reg1.test(input))&&!(reg2.test(input))&&!(reg3.test(input))&&!(reg4.test(input))&&!(reg5.test(input))) {
        return false;
    }
    return true;
}

//是否为合法的身份证号码
zzfz.validate.isCertNo = function(value) {
    if(zzfz.validate.isBlank(value)){
        return false;
    }
    
    if(!zzfz.validate.isRangeLength(value,15,18,false)) {
        return false;
    }
    
    var reg_15 = /\d{15}/;
    var reg_18 = /\d{17}([0-9]{1}|x|X)/;
    var monthPerDays = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
    value = value.toLowerCase();
    
    if(!( (value.length == 15) ? reg_15.test(value) : reg_18.test(value) )){
        return false;
    }
    
    birthDate = value.length == 15?"19" + value.substr(6,6):value.substr(6,8);
    year = birthDate.substr(0,4);
    if(birthDate.substr(4,1) == '0')
        month = birthDate.substr(5,1);
    else
        month = birthDate.substr(4,2);
    if(birthDate.substr(6,1) == '0')
        day = birthDate.substr(7,1);
    else
        day = birthDate.substr(6,2);
    dd = parseInt(day);
    mm = parseInt(month);
    yy = parseInt(year);
    days = new Date();
    gdate = days.getDate();
    gmonth = days.getMonth();
    gyear18 = days.getFullYear()-18;
    if(mm>12 || mm<1 ||dd>31 || dd<1){
        return false;
    }
    if(year % 100 != 0){
        if(year % 4 ==0)
        monthPerDays[1] = 29;
    }else{
        if(year % 400 == 0)
        monthPerDays[1] = 29;
    }
    if(monthPerDays[mm - 1] < dd){
        return false;
    }
    
    if(value.length == 18){
        var arTemp = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
        var num = 0;
        var proof;
        for(var i=0; i < 17; i ++){
            num = num + value.substr(i,1) * arTemp[i];
        }
        num = num % 11;
        switch(num){
            case 0:proof='1';break;
            case 1:proof='0';break;
            case 2:proof='x';break;
            case 3:proof='9';break;
            case 4:proof='8';break;
            case 5:proof='7';break;
            case 6:proof='6';break;
            case 7:proof='5';break;
            case 8:proof='4';break;
            case 9:proof='3';break;
            case 10:proof='2';break;
        }
        if(value.substr(17, 1) != proof){
            return false;
        }
    }
    
    mm = mm -1;
    var prevTS18 = new Date(gyear18, gmonth, gdate,0,0,0);
    var ageTs = new Date(yy,mm,dd,0,0,0);
    if(prevTS18 < ageTs){
        return false;
    }
    return true;
};

//是否为合法的手机号码
zzfz.validate.isMobile = function(value) {
    if(! /^[0-9]{11}$/.test( value )){
        return false;
    }
    return (/^(1(([3][0-9])|([5][012356789])|([4][57])|([7][0678])|[8][0123456789]))\d{8}$/.test($.trim(value)));
};


//是否为一个大于0的数字
zzfz.validate.isNumberGreaterThan0 = function(value){
    if(!/^[0,9].*$/.test(value))
    {
        return false;
    }
};


//是否为2到8位的中文
zzfz.validate.is2to8chinese = function(value){
    if(!/^[\u4E00-\u9FA5\uf900-\ufa2d]{2,8}$/.test(value))
    {
        return false;
    }
}

//是否为为6到18位的字符(汉字,英文,数字的组合),(标点符号,特殊字符除外.)
zzfz.validate.is6to18Character = function(value){
    if(!/^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{6,18}$/.test(value))
    {
        return false;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值