js常用的正则验证

一、手机号码验证


(一)中国电信号段:
133、149、153、173、177、180、181、189、199

(二)中国联通号段
130、131、132、145、155、156、166、175、176、185、186

(三)中国移动号段
134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198

(四)其他号段
虚拟运营商
电信:1700、1701、1702

移动:1703、1705、1706

联通:1704、1707、1708、1709、171

卫星通信:1349

/* 方法名:isTel
*  参数:t (需要验证的手机号码)
*  说明:返回结果为true或false
*/
 
function isTel(t) {
        var reg = /^[1](([38][0-9])|([4][579])|([5][0-35-9])|([6]{2})|([7][0135-8])|([9][8|9]))[0-9]{8}$/; 
        var text = reg.test(t);
        return text;
    }


二、常用邮箱验证

/*
* 方法名:isMail
* 参数  : t(需要验证的邮箱)
* 结果  : 返回值为验证结果,true/false
*/
function isMail(t) {
      var reg = /^[0-9a-zA-Z._-]+@[a-zA-Z0-9]{2,}.((com)|(cn))$/;
      var text = reg.test(t);
      return text;
    };


三、身份证号码验证


18位身份证号码验证规则:
(一)前六位代表地区地址码

(二)七到十四位代表的是出生年月日,格式为yyyy,mm,dd
(三)十五位到十七位为顺序码,奇数代表为男性,偶数代表为女性

(四)最后一位为校验码,可以为0-9或者是x/X;

方法名:isID

参数:需要验证的号码
返回结果:若正确则返回对象形式,

{

age:23  // 年龄

 day:"25" // 出生日期

mouth:"03" // 出生月份 

sex:"男" // 性别 

year:"1995" // 出生年份

},

若不正确,则为undefined 或者 ‘身份证输入不合法’。

 function isID(t) {
        // 判断闰年
        function isY(y) {
            var md;
            if((y % 4) && !(y % 100) ){
                md = 29;
            }else{
                md = 28;
            }
            return md;
        }
 
        // 根据月份判断天数
        function isD(m,y) {
            var res1 = /^([0][1|3|5|7|8])|([1][0|2])$/;
            var res2 = /^([0][4|6|9])|([1][1])$/;
            if(res1.test(m)){
                return 31;
            }else if(res2.test(m)){
                return 30;
            }else if(m*1 == 2){
                return isY(y);
            }
        }
 
        var ts = new Date();
        var s = ts.getFullYear();
        var nm = ts.getMonth()+1 > 9 ? ts.getMonth()+1 : '0' + (ts.getMonth()+1) ;
        var nd = ts.getDay() > 9 ? ts.getDay() : '0'+ts.getDay();
        var oy = s-200;
        var r = /^[0-9]{18}$/;
 
        if(!r.test(t)){     // 判断是否符合18位
            return '身份证输入不合法';
        }else{
            var ID= {};
            var ad = t.slice(0,6);  // 地区编号
            var yy = t.slice(6,10); // 出生年份
            var mm = t.slice(10,12);    // 月份
            var dd = t.slice(12,14);    // 日
            var sex = t.slice(14,17);    // 顺序号,判断性别,奇数为男,偶数为女
            var  tx = t.slice(17);      // 校验号
 
            var reg1 = /^[1-9][0-9]{5}$/;  // 验证地区
            var reg2 = /^([0][1-9])|([1][0-2])$/; // 验证月份
            var reg3 = /^[0-9xX]$/; //最后一为校验码
 
            // 判断出生日期
            if(oy <= yy && s>yy){ // 判断年份
                if(reg2.test(mm)){ // 判断月份
                    if(dd > 0 && dd < isD(mm,yy)){ // 判断日期
                        ID.year = yy;
                        ID.mouth = mm;
                        ID.day = dd;
                    }
                }
            }else if(s == yy){  // 身份证是否为当前年份
                if(mm > 0 && mm <= nm){ // 身份证是否在当前月份之前
                    if(dd < nd && dd > 0){ // 身份证是否在当前日期之前
                        ID.year = yy;
                        ID.mouth = mm;
                        ID.day = dd;
                    }
                }
            }
 
            // 判断性别
            if(sex % 2){ //判断性别为男
                ID.sex = '男';
            }else{
                ID.sex = '女';
            }
 
            if(reg1.test(ad) && reg3.test(tx)){
                ID.age = s - yy;
                return ID;
            }else{
                return '身份证输入不合法';
            }
        }
    };


四、注册密码的一致性验证


此方法用于注册页面中,验证两次输入密码是否正确


 

/*方法名:isAgreement
*参数:obj(为对象形式,有两个键值对:pw1:第一个密码框,pw2:第二个密码框);
*返回值为布尔值,密码一致为true,否则为false
*/
function isAgreement (obj) {
        obj = obj || {};
        obj.pw1 = obj.pw1 || '';
        obj.pw2 = obj.pw2 || '';
        var res = (obj.pw1 == obj.pw2) ;
        return res;
    }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

及时当勉励岁月不待人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值