1、手机号:^1[34578]\d{9}$

2、邮箱:^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$

3、电话:^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$

 【"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX】

4、提取信息中的中国电话号码(包括移动和固定电话):(<span id="MathJax-Span-10" class="mrow"><span id="MathJax-Span-11" class="mtext">\d<span id="MathJax-Span-12" class="texatom"><span id="MathJax-Span-13" class="mrow"><span id="MathJax-Span-14" class="mn">3<span id="MathJax-Span-15" class="mo">,<span id="MathJax-Span-16" class="mn">4\d3,4|\d{3,4}-|\s)?\d{7,14}    

5、英文字母开头,字母+数字+下滑线:^[a-zA-Z][a-zA-Z0-9_]*$

6、正整数:^\+?[1-9][0-9]*$

7、网址:^((ht|f)tps?):\/\/([\w\-]+(\.[\w\-]+)*\/)*[\w\-]+(\.[\w\-]+)*\/?(\?([\w\-\.,@?^=%&:\/~\+#]*)+)?

8、正的,小数部分以5结尾的浮点数 或 正整数:^[1-9]\d*\.[5]$|0\.[5]$|^[1-9]\d*$

9、身份证:

      const idcardReg = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
      if (!idcardReg.test(this.idCardNo)) {
        this.srv['warn']('请填写正确的证件号码', 3500);
        return;
      } else {
        //如果通过该验证,说明身份证格式正确,但准确性还需计算
        if (this.idCardNo.length == 18) {
          var idCardWi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); //将前17位加权因子保存在数组里
          var idCardY = new Array(1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2); //这是除以11后,可能产生的11位余数、验证码,也保存成数组
          var idCardWiSum = 0; //用来保存前17位各自乖以加权因子后的总和
          for (var i = 0; i < 17; i++) {
            idCardWiSum += this.idCardNo.substring(i, i + 1) * idCardWi[i];
          }
          var idCardMod = idCardWiSum % 11;//计算出校验码所在数组的位置
          var idCardLast = this.idCardNo.substring(17);//得到最后一位身份证号码
          //如果等于2,则说明校验码是10,身份证号码最后一位应该是X
          if (idCardMod == 2) {
            if (idCardLast == 'X' || idCardLast == 'x') {
              //  console.log('恭喜通过验证啦!');
            } else {
              this.srv['warn']('身份证号码错误!', 3500);
              return;
            }
          } else {
            //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
            if (idCardLast == idCardY[idCardMod]) {
              //  console.log('恭喜通过验证啦!');
            } else {
              this.srv['warn']('身份证号码错误!', 3500);
              return;
            }
          }
        }
      }

 10、港澳身份证正则

isHKCard(card) {
      // 港澳居民来往内地通行证
      // 规则: H/M + 10位或6位数字
      // 样本: H1234567890
      var reg = /^([A-Z]\d{6,10}(\(\w{1}\))?)$/;
      if (reg.test(card) === false) {
        return { 'status': 0, 'msg': '港澳居民来往内地通行证号码不合规' };
      } else {
        return { 'status': 1, 'msg': '校验通过' };
      }
    },

11、台湾身份证正则

isTWCard(card) {
      // 台湾居民来往大陆通行证
      // 规则: 新版8位或18位数字, 旧版10位数字 + 英文字母
      // 样本: 12345678 或 1234567890B
      var reg = /^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/;
      if (reg.test(card) === false) {
        return { 'status': 0, 'msg': '台湾居民来往大陆通行证号码不合规' };
      } else {
        return { 'status': 1, 'msg': '校验通过' };
      }
    },

12、护照正则

isPassPortCard(card) {
      // 护照
      // 规则: 14/15开头 + 7位数字, G + 8位数字, P + 7位数字, S/D + 7或8位数字,等
      // 样本: 141234567, G12345678, P1234567
      var reg = /^([a-zA-z]|[0-9]){5,17}$/;
      if (reg.test(card) === false) {
        return { 'status': 0, 'msg': '护照号码不合规' };
      } else {
        return { 'status': 1, 'msg': '校验通过' };
      }
    },

13、军官证正则

isOfficerCard(card) {
      // 军官证
      // 规则: 军/兵/士/文/职/广/(其他中文) + "字第" + 4到8位字母或数字 + "号"
      // 样本: 军字第2001988号, 士字第P011816X号
      var reg = /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/;
      if (reg.test(card) === false) {
        return { 'status': 0, 'msg': '军官证号不合规' };
      } else {
        return { 'status': 1, 'msg': '校验通过' };
      }
    },

14、户口本正则

isAccountCard(card) {
      // 户口本
      // 规则: 15位数字, 18位数字, 17位数字 + X
      // 样本: 441421999707223115
      var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
      if (reg.test(card) === false) {
        return { 'status': 0, 'msg': '户口本号码不合规' };
      } else {
        return { 'status': 1, 'msg': '校验通过' };
      }
    }

15、密码

//密码正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var pwd = prompt("请出入密码")
var pwdPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
if (pwdPattern.test(pwd)) {
	console.log("√");
}else{
	console.log("您的密码格式有误");
}

第二代身份证号码编排规则: https://jingyan.baidu.com/article/72ee561abd962fe16038df48.html

 

 

posted on 2019-06-10 19:29  奇迹般若果  阅读(200)  评论(0编辑  收藏  举报