Vue 正则验证:邮箱,手机号,身份证,IP,MAC,微信号等

Vue正则验证:邮箱,手机号,身份证,IP,MAC,微信号等

//1. 手机号:
var validateMobilePhone = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('手机号不可为空'));
  } else {
    if (value !== '') {
      var reg=/^1[3456789]\d{9}$/;
      if(!reg.test(value)){
        callback(new Error('请输入有效的手机号码'));
      }
    }
    callback();
  }
};
//2. 邮箱:
var validateEmail = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请正确填写邮箱'));
  } else {
    if (value !== '') {
      var reg=/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
      if(!reg.test(value)){
        callback(new Error('请输入有效的邮箱'));
      }
    }
    callback();
  }
};
//3. 密码:
var validatePass = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('密码格式不正确'));
  } else if(value.length < 6){
    callback(new Error('密码长度最小6位'));
  }else{
    callback();
  }
};
//4. 固定电话:
var validatePhone = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('电话不可为空'));
  } else {
    if (value !== '') {
      var reg =/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
      if(!reg.test(value)){
        callback(new Error('请输入正确的座机号格式为:0000-0000000'));
      }
    }
    callback();
  }
};
//5. 微信号:
var validateWeixin = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('微信号不能为空'));
  }else{
    var reg= /^[a-zA-Z][a-zA-Z0-9_-]{5,19}$/;
    if(!reg.test(value)){
      callback(new Error('请输入正确的微信号码'));
    }else{
      callback();
    }
  }
};
//6. IP地址:
var validateIP = (rule, value, callback) => {
  if(value && "..." === value){
    callback(new Error('请输入IP地址'))
  }if (value && !(/((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/)
        .test(value)) {
    callback(new Error('IP地址不规范'))
  } else {
    callback()
  }
}
//7. 身份证号:
var validateIDCard = (rule, value, callback) => {
  if (value && (!(/\d{17}[\d|x]|\d{15}/).test(value) || (value.length !== 15 && value.length !== 18))) {
    callback(new Error('身份证号码不规范'))
  } else {
    callback()
  }
}
//8. 正整数:
var validateIntegerP = (rule, value, callback) => {
  if (value && !(/^[1-9]\d*$/).test(value)) {
    callback(new Error('只能填写正整数'))
  } else {
    callback()
  }
}
//负整数 /^-[1-9]\d*$/
//9. 电脑MAC地址:
var validateMac = (rule, value, callback) => {
  let temp = /[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}/;
  if (!temp.test(value)) {
    callback(new Error('请输入xx-xx-xx-xx-xx-xx形式的MAC地址!'));
  } else{
    callback();
  }
}
  /**
   * 基于ElementUI Form rules 进行使用 [自定义校验规则]
   * @example  rules: {
   *  ip: [
   *    {required: true, message: '请输入矩阵IP', trigger: 'blur'},
   *    {validator: this.$rules.ipAddress, trigger: 'blur'}
   *  ]
   * }
   */
  export const validater = {
    /**
     * 校验 包括中文字、英文字母、数字和下划线
     * 登录账号校验
     */
    validateAccount(rule, value, callback) {
      let acount = /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/
      if (value && (!(acount).test(value))) {
        callback(new Error('账号不符合规范'))
      } else {
        callback()
      }
    },

    /**
     * IP地址校验
     */
    ipAddress(rule, value, callback) {
      if(value && "..." === value){
        callback(new Error('请输入IP地址'))
      }if (value && !(/((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/)
            .test(value)) {
        callback(new Error('IP地址不符合规范'))
      } else {
        callback()
      }
    },

    /**
     * 手机号码校验
     */
    phoneNumber(rule, value, callback) {
      if (value && (!(/^[1][34578]\d{9}$/).test(value) || !(/^[1-9]\d*$/).test(value) || value.length !== 11)) {
        callback(new Error('手机号码不符合规范'))
      } else {
        callback()
      }
    },

    /**
     * 电话号码校验
     */
    telephoneNumber(rule, value, callback) {
      if (value && (!(/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/).test(value))) {
        callback(new Error('电话号码不符合规范'))
      } else {
        callback()
      }
    },

    /**
     * 邮箱校验
     */
    emailValue(rule, value, callback) {
      let temp = /^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$/
      let tempOne = /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/
      if (value && (!(temp).test(value))) {
        callback(new Error('邮箱格式不符合规范'))
      } else {
        callback()
      }
    },

    /**
     * 身份证号码校验
     */
    idCard(rule, value, callback) {
      if (value && (!(/\d{17}[\d|x]|\d{15}/).test(value) || (value.length !== 15 && value.length !== 18))) {
        callback(new Error('身份证号码不符合规范'))
      } else {
        callback()
      }
    },

    /**
     * 正整数校验
     */
    integerP(rule, value, callback) {
      if (value && !(/^[1-9]\d*$/).test(value)) {
        callback(new Error('只能填写正整数'))
      } else {
        callback()
      }
    },

    /**
     * 负整数校验
     */
    integerN(rule, value, callback) {
      if (value && !(/^-[1-9]\d*$/).test(value)) {
        callback(new Error('只能填写负整数'))
      } else {
        callback()
      }
    },

    /**
     * 英文字符校验
     */
    enText(rule, value, callback) {
      // let a = '',
      //   arr = value.split(" ")
      // for (let i = 0; i < arr.length; i++) { //删除行内空格
      //   a += arr[i];
      // }
      if (value && !(/^[A-Za-z]+$/).test(value)) {
        callback(new Error('只能填写英文字符'))
      } else {
        callback()
      }
    },
    /**
     * 中文字符英文字符校验
     */
    ChEnText(rule, value, callback) {
      if (value && !(/^[A-Za-z0-9]+$/).test(value)) {
        callback(new Error('只能填写数字和英文字符'))
      } else {
        callback()
      }
    },
    /**
     * 中文字符校验
     */
    cnText(rule, value, callback) {
      // let a = '',
      //   arr = value.split(" ")
      // for (let i = 0; i < arr.length; i++) { //删除行内空格
      //   a += arr[i];
      // }
      if (value && (/[^\u4e00-\u9fa5]/).test(value)) {
        callback(new Error('只能填写中文字符'))
      } else {
        callback()
      }
    },
    /**
     * 只能输入英文或者数字
     */
    enOrnunText (rule, value, callback) {
      if (value && !(/^[A-Za-z0-9]+$/).test(value)) {
        callback(new Error('只能填写英文或者数字'))
      } else {
        callback()
      }
    },
    /**
     * 20位数字国标编码校验,且为正整数
     */
    validateDeviceNo (rule, value, callback) {
      if (value && !(/^[1-9]\d*$/).test(value)) {
        callback(new Error('只能填写正整数'))
      } else {
        if (!/^[0-9]{20}$/.test(value)) {
          callback(new Error('请输入20位数字的编码!'));
        } else {
          callback();
        }
      }
    },
    /**
     *校验电脑Mac地址
     *以xx-xx-xx-xx-xx-xx的形式输入(xx为16进制数字)
     */
    validateMac (rule, value, callback) {
      let temp = /[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}/;
      if (!temp.test(value)) {
        callback(new Error('请输入xx-xx-xx-xx-xx-xx形式的MAC地址!'));
      } else{
        callback();
      }
    },
    /**
     * 校验地址代码或者分组代码
     */
    validateCode (rule, value, callback) {
      let num = /^[1-9]\d*$/
      if (value && !(num).test(value)) {
        callback(new Error('只能填写正整数'))
      } else {
        let codeLen = value.toString().length
        console.log(codeLen)
        if(codeLen > 0 && codeLen % 3 !== 0){
          callback(new Error('输入的长度必须是3的倍数'))
        }else if(codeLen>18){
          callback(new Error('输入的长度不能超过18位,请重新输入'))
        }
        else {
          callback()
        }
      }
    },

    /**
     * 校验字符长度
     */
    validateLength (rule, value, callback) {
      let codeLen = value.toString().length
      if(codeLen>18){
        callback(new Error('输入的长度不能超过20位,请重新输入'))
      }
    },

    /**
     * 数字 ,两位
     */
    validateTwoNum (rule, value, callback) {
      let temp = /^[1-9]{2}$/;
      if (!temp.test(value)) {
        callback(new Error('请输入两位正整数!'));
      } else{
        callback();
      }
    },

    /**
     * 校验经度是否符合规范
     *
     */
    checkLongitude(rule, value, callback) {
      let longrg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;
      if(!longrg.test(value)){
        callback(new Error('经度整数部分为0-180,小数部分为0到6位!'));
      } else {
        callback();
      }
    },

    /**
     * 校验纬度是否符合规范
     *
     */
    checkLatitude(rule, value, callback) {
      var latreg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;
      if(!latreg.test(value)){
        callback(new Error('纬度整数部分为0-90,小数部分为0到6位!'));
      } else {
        callback();
      }
    }
  }
验证数字的正则表达式集
验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0) ^\d+$
验证非正整数(负整数 + 0) ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数:^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0):^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数:^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数:^(-?\d+)(\.\d+)?$
验证字符串是否符合 YYYY-mm-DD HH:mm:ss 格式正则表达式:
var reg = /^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s((([0-1][0-9])|(2?[0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/;
console.log(reg.test(YOUR_STRING))
发布了188 篇原创文章 · 获赞 13 · 访问量 7225

猜你喜欢

转载自blog.csdn.net/Marker__/article/details/104201759