js常用的正则验证

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

一、手机号码验证

(一)中国电信号段:

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

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试