正则表达式整理,“密码”,“手机号”,“身份证”,“邮箱”,“税号”,“打折”,“数字”等等

最近项目用到的正则表达式

密码

密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线)

var a1= (rule, value, callback) => {
  var b1 = /^[a-zA-Z]\w{5,17}$/
       if (!value) {
        callback(new Error("请输入******"));
      } else {
        if (b1 .test(value)) {
          callback();
        } else {
          callback(new Error("请输入****"));
        }
      }
    };

身份证校验

var a1= (rule, value, callback) => {
      if (!value) {
        callback(new Error("请输入身份证号"));
      } else if (
        value &&
        (!/\d{17}[\d|x]|\d{15}/.test(value) ||
          (value.length !== 15 && value.length !== 18))
      ) {
        callback(new Error("身份证号码不符合规范"));
      } else {
        callback();
      }
    };

手机号校验(包含座机如:0558-5674423)

第一种:手机号和座机都可以校验

var a1= (rule, value, callback) => {
      const reg = /((^0[0-9]{2,3}-[0-9]{8})|(^1(3|4|7|5|8|9|6|2)([0-9]{9}))|(^400[0-9]{7})|(^800[0-9]{7}))|(^(400)-(\d{3})-(\d{4})(.)(\d{1,4})$)|(^(400)-(\d{3})-(\d{4}$))|(^(800)-(\d{3})-(\d{4})(.)(\d{1,4})$)|(^(800)-(\d{3})-(\d{4}$))$/;
      if (!value) {
        callback(new Error("请输入电话"));
      } else {
        if (reg.test(value)) {
          callback();
        } else {
          callback(new Error("电话号码不符合规范"));
        }
      }
    };

第二种:纯手机号校验

var a1= (rule, value, callback) => {
      if (!value) {
        callback(new Error("请输入手机号"));
      } else if (
        value &&
        (!/^[1][345789]\d{9}$/.test(value) ||!/^[1-9]\d*$/.test(value) ||value.length !== 11)
      ) {
        callback(new Error("请输入正确的手机号"));
      } else {
        callback();
      }
    };

邮箱

两种不同的邮箱校验 b1和b2

var a1= (rule, value, callback) => {
      let b1= /^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$/;
      let b2= /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/;
      if (!value) {
        callback(new Error("请输入邮箱"));
      } else if (value && !b1.test(value)) {
        callback(new Error("邮箱格式不符合规范"));
      } else {
        callback();
      }
    };

税号校验

包含:15位 17位 18位 20位 + 大写字母

var a1= (rule, value, callback) => {
      const reg = /^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/;
      if (!value) {
        callback(new Error("请输入******"));
      } else {
        if (reg.test(value)) {
          callback();
        } else {
          callback(new Error("请输入*****"));
        }
      }
    };

打折校验

大于等于0,小于10 保留两位小数

  var a1= (rule, value, callback) => {
      const reg = /^((0\.[0-9]{1,2})|(([0-9]{1,2})(\.\d{1,2})?))$/;
      if (!value) {
        callback(new Error("请输入***"));
      } else if (!Number(value) && value != 0) {
        callback(new Error("请输入数字"));
      } else if (Number(value) >= 10) {
        callback(new Error("请输入小于10数字"));
      } else if (value == 0) {
        callback();
      } else if (Number(value) < 0 && value != 0) {
        callback(new Error("请输入大于0数字"));
      } else {
        if (reg.test(value)) {
          callback();
        } else {
          callback(new Error("最多只能输入两位小数"));
        }
      }
    };

数字校验

1.纯数字—保留两位小数 书写的记得考虑数字“0”

var a1= (rule, value, callback) => {
      const reg = /^\d+.?\d{0,2}$/;
      if (!value) {
        callback(new Error("请输入**"));
      } else if (Number(value) < 0 && value != 0) {
        callback(new Error("大于0"));
      } else {
        if (reg.test(value)) {
          callback();
        } else {
          callback(new Error("请输入数字,最多保留两位小数"));
        }
      }
    };

纯数字—16位

var a1= (rule, value, callback) => {
      const reg = /^\d{16}$/;
      if (!value) {
        callback(new Error("请输入**"));
      } else if (!Number(value)) {
        callback(new Error("请输入数字"));
      } else {
        if (reg.test(value)) {
          callback();
        } else {
          callback(new Error("请输入16位数字"));
        }
      }
  };

数字 — 大于10以上的数字

var a1= (rule, value, callback) => {
      const reg = /^[1-9]\d*|0$/;
      if (!value) {
        callback(new Error("请输入*****"));
      } else if (Number(value) < 10) {
        callback(new Error("最少10元"));
      } else {
        if (reg.test(value)) {
          callback();
        } else {
          callback(new Error("请输入整数"));
        }
      }
 };

禁止输入特殊字符

var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;
		var	regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im;
   if (regEn.test(value) || regCn.test(value)) {
     return callback(new Error('不能包含特殊字符'))
   } else {
     callback()
 }

待续

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值