element ui 表单正则校验


export const validater = {   /**    * 校验 包括中文字、英文字母、数字和下划线    * 登录账号校验    */   validateAccount(rule, value, callback) {     const acount = /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/;     if (value && !acount.test(value)) {       callback(new Error("账号不符合规范"));     } else {       callback();     }   },   /**    * 验证密码    * @param {*} rule    * @param {*} value    * @param {*} callback    */   validatePass(rule, value, callback) {     if (value === "") {       callback(new Error("请设置正确格式的密码"));     } else if (value.length < 6) {       callback(new Error("密码长度最小6位"));     } else {       callback();     }   },   /**    * 验证邮箱    * @param {*} rule    * @param {*} value    * @param {*} callback    */   validateEmail(rule, value, callback) {     if (value === "") {       callback(new Error("请输入邮箱地址"));     } else {       if (value !== "") {         const reg = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;         if (!reg.test(value)) {           callback(new Error("请输入有效的邮箱"));         }       }       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) {   //   const temp = /^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$/   //   // const 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();     }   },   /**    * 角色编码校验    */   roleCode(rule, value, callback) {     if (!value) {       callback(new Error("请输入角色编码"));     } else {       if (value && !/^[A-Z]+$/.test(value)) {         callback(new Error("请输入正确角色编码"));       } else {         callback();       }     }   },   /**    * 英文字符校验    */   enText(rule, value, callback) {     if (!value) {       callback(new Error("不能为空"));     } else {       let a = "",         arr = value.split(" ");       for (let i = 0; i < arr.length; i++) {         //删除行内空格         a += arr[i];       }       if (a && !/^[A-Za-z]+$/.test(a)) {         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) {     const 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) {     const num = /^[1-9]\d*$/;     if (value && !num.test(value)) {       callback(new Error("只能填写正整数"));     } else {       const 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) {     const codeLen = value.toString().length;     if (codeLen > 18) {       callback(new Error("输入的长度不能超过20位,请重新输入"));     }   },
  /**    * 数字 ,两位    */   validateTwoNum(rule, value, callback) {     const temp = /^[1-9]{2}$/;     if (!temp.test(value)) {       callback(new Error("请输入两位正整数!"));     } else {       callback();     }   } };
vue