正则:验证手机号码、身份证号码合规(项目常用、大型项目亲测有效)

正则:验证手机号码、身份证号码合规(项目常用、大型项目亲测有效)

1.手机号码简单验证1字开头长度11位

1.1 正则表达式

/^1\d{10}$/

1.2 element写法

//index.vue
data(){
	var validatorPhone = function (rule, value, callback) {
	  if (value === "") {
	      // callback(new Error('请输入手机号码'))
	      callback();
	    } else if (!/^1\d{10}$/.test(value)) {
	      callback(new Error("手机号格式错误"));
	    } else {
	      callback();
	    }
  	};
}
return {
	rules: {
        phone: [{ required: true,  validator: validatorPhone,  trigger: ["change", "blur"]} ]
	}
}

2.手机号码合规验证

2.1 正则表达式

/^1(3|4|5|6|7|8|9)\d{9}$/ //最新16手机正则
/^(0\d{2,3}-){0,1}\d{7,8}$/ //座机

2.2 element写法

//index.vue
data(){
	var validatorPhone = function (rule, value, callback) {
	  let reg = null
      let mobile = /^1(3|4|5|6|7|8|9)\d{9}$/; //最新16手机正则
      let tel = /^(0\d{2,3}-){0,1}\d{7,8}$/; //座机
      if (value.charAt(0) == 0){
        reg = tel;
      } else {
        reg = mobile;
      }
      if (value === "") {
        callback();
      }else if(!reg.test(value)) {
        callback(new Error("电话号码格式错误"));
      } else {
        callback();
      }
  	};
}
return {
	rules: {
        phone: [{ required: true,  validator: validatorPhone,  trigger: ["change", "blur"]} ]
	}
}

3.身份证号码合规验证(大型项目已亲测)

//index.vue
var validatorIdNum = function (rule, value, callback) {
 if (value === "") {
     callback(new Error('请输入身份证号码'))
   } else if (!isIdCardNo(value)) {
     callback(new Error("身份证输入有误"));
   } else {
     callback();
   }
 };


//common.js
export function isIdCardNo(num) {   let factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);   let parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");   let varArray = new Array();   let intValue;   let lngProduct = 0;   let intCheckDigit;   let intStrLen = num.length;   let idNumber = num;   // initialize   if ((intStrLen != 15) && (intStrLen != 18)) {
      return false;   }   // check and set value   for (let i = 0; i < intStrLen; i++) {
      varArray[i] = idNumber.charAt(i);
      if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
          return false;
      } else if (i < 17) {
          varArray[i] = varArray[i] * factorArr[i];
      }   }

  if (intStrLen == 18) {
      //check date
      var date8 = idNumber.substring(6, 14);
      if (isDate8(date8) == false) {
          return false;
      }
      // calculate the sum of the products
      for (let i = 0; i < 17; i++) {
          lngProduct = lngProduct + varArray[i];
      }
      // calculate the check digit
      intCheckDigit = parityBit[lngProduct % 11];
      // check last digit
      if (varArray[17] != intCheckDigit) {
          return false;
      }   }   else {        //length is 15
      //check date
      let date6 = idNumber.substring(6, 12);
      if (isDate6(date6) == false) {
          return false;
      }   }   return true; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值