精华内容
下载资源
问答
  • VUE正则表达式验证规则合集0-100校验发动机号校验拼音校验经度校验纬度校验VIN码校验车牌校验时间校验票价校验身份证校验年龄校验0-10校验驾驶证档案编号校验手机号码校验URL校验编号格式校验特殊字符校验名称校验...

    0-100校验

    pattern: new RegExp(/^(([0-9])|([0-9][0-9])|100)$/, 'g'),
    message: '阀值为0-100',
    

    发动机号校验

    pattern: new RegExp(/^[A-Z0-9a-z\d]{7,8}$/, 'g'),
    message: '请输入正确发动机号',
    

    拼音校验

    pattern: new RegExp(/^[\u4e00-\u9fa5\a-zA-Z0-9]+$/, 'g'),
    message: '请输入正确的拼音',
    

    经度校验

    pattern: new RegExp(/^-?((0|1?[0-8]?[0-9]?)(([.][0-9]{1,10})?)|180(([.][0]{1,10})?))$/,'g'),
    message: '请输入正确的经度',
    

    纬度校验

    pattern: new RegExp(/^-?((0|[1-8]?[0-9]?)(([.][0-9]{1,10})?)|90(([.][0]{1,10})?))$/,'g'),
    message: '请输入正确的纬度',
    

    VIN码校验

    pattern: new RegExp(/^[A-HJ-NPR-Z\d]{9}[A-HJ-NPR-TV-Y1-9]{1}[A-HJ-NPR-Z\d]{7}$/'g'),
    message:'VIN码由17位数字或字母组成,英文字母I、O、Q不使用,第10位生产型年不使用I、O、Q、U、Z、数字0',
    

    车牌校验

    pattern: new RegExp( /^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z][A-Z])[-]?|([wW][Jj][京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z][-]?)|([a-zA-Z]{2}))([A-Za-z0-9]{5}|[DdFf][A-HJ-NP-Za-hj-np-z0-9][0-9]{4}|[0-9]{5}[DdFf])$/,'g'),
    message: '请输入正确的车牌',
    

    时间校验

    pattern: new RegExp(/^(([0-1][0-9])|(^2[0-3])):([0-5][0-9])$/, 'g'),
    message: '请输入正确的时间',
    

    票价校验

    pattern: new RegExp(/^[0-9]+([.][0-9]{1}){0,1}$/, 'g'),
    message: '请输入正确的票价',
    

    身份证校验

    pattern: new RegExp(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, 'g'),
    message:'身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位可能为数字或字符X',
    

    年龄校验

    pattern: new RegExp(/^(?:[1-7]?\d|80)$/, 'g'),
    message: '请输入正确的年龄',
    

    0-10校验

    pattern: new RegExp(/^([0-9]|10)$/, 'g'),
    message: '请输入正确的评分',
    

    驾驶证档案编号校验

    pattern: new RegExp(/^[1-8]{11}$/, 'g'),
    message: '驾驶证档案编号由11位数字组成,并且数字位于1-8之间',
    

    手机号码校验

    pattern: new RegExp(/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,'g'),
    message: '手机号码格式不正确',
    

    URL校验

    pattern: new RegExp('^((https|http|ftp|rtsp|mms)?://)' +"+(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" +'(([0-9]{1,3}\\.){3}[0-9]{1,3}' +'|' +"([0-9a-z_!~*'()-]+\\.)*" +'([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\.' +'[a-z]{2,6})' +'(:[0-9]{1,5})?' +'((/?)|' +"(/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+/?)$"),
      message: '请输入规范的URL',
    

    编号格式校验

     pattern: new RegExp(/^(20[1-2][0-9])((0[469]|11)([012][0-9]|30)|(0[13578]|1[02])([012][0-9]|3[01])|(02([01[0-9]|2[0-8])))([0-9][0-9])$/,'g'),
    message: '编号格式为开始时间的年月日加编号,例2022010101',
    

    特殊字符校验

    pattern: new RegExp(/^[\u4e00-\u9fa5\a-zA-Z0-9]+$/, 'g'),
    message: '不能有特殊字符',
    

    名称校验

    pattern: new RegExp(/^[a-zA-Z0-9;',()_./~!@#$%^&*-]{1,100}$/, 'g'),
    message: '主题名称需要在1-100位,支持数字、字母、英文标点(半角)',
    

    MAC地址校验

    pattern: new RegExp('/^[A-F0-9]{2}(-[A-F0-9]{2}){5}$|^[A-F0-9]{2}(:[A-F0-9]{2}){5}$|^[A-F0-9]{12}$|^[A-F0-9{4}(.[A-F0-9]{4}){2}$')
    message: 'MAC地址格式错误'
    

    密码校验

    pattern: new RegExp('^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`()-+=]{8,20}$'),
    message: '密码由7位以上的大小写字母、数字及特殊字符中的3种组合而成',
    
    展开全文
  • //正则验证:直接引入组件,传需要验证的参数即可,不需要再写test /** * 邮箱 * @param {*} s */ export function isEmail (s) { return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/...
    //正则验证:直接引入组件,传需要验证的参数即可,不需要再写test
    
    /**
     * 邮箱
     * @param {*} s
     */
     export function isEmail (s) {
        return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
      }
      
      /**
       * 手机号码
       * @param {*} s
       */
      export function isMobile (s) {
        return /^1[0-9]{10}$/.test(s)
      }
      
      /**
       * 电话号码
       * @param {*} s
       */
      export function isPhone (s) {
        return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
      }
      
      /**
       * URL地址
       * @param {*} s
       */
      export function isURL (s) {
        return /^http[s]?:\/\/.*/.test(s)
      }
      
    
    展开全文
  • vue正则,各种正则表达式

    千次阅读 2020-11-20 18:05:04
    vue正则,各种正则表达式 // 邮箱 extend("email", value => { //let re = /^([a-zA-Z0-9]+[_|\-|\.]?)+@([a-zA-Z0-9]+[_|\-|\.]?)+([a-zA-Z0-9]{1,})+\.[a-zA-Z]{2,}$/; // let re = /^[a-zA-Z0-9_-|\.|\-]+@[a-zA-...

    vue正则,各种正则表达式

    // 邮箱
    extend("email", value => {
      //let re = /^([a-zA-Z0-9]+[_|\-|\.]?)+@([a-zA-Z0-9]+[_|\-|\.]?)+([a-zA-Z0-9]{1,})+\.[a-zA-Z]{2,}$/;
      // let re = /^[a-zA-Z0-9_-|\.|\-]+@[a-zA-Z0-9_-|\.|\-]+(\.[a-zA-Z]+)+$/;
      let re = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
      if (!re.test(value)) {
        return "请输入正确的{_field_}";
      } else if (value.length > 50) {
        return "{_field_}不能超过50个字符";
      } else {
        return true;
      }
    });
    // 两次输入密码不一致
    extend("confirmed", {
      ...confirmed,
      message: "两次密码输入不一致"
    });
    
    //输入框不为空
    extend("required", {
      ...required,
      message: "请输入{_field_}"
    });
    //账号不支持中文 只能以字母开头 长度为6-32个字符 至少包含英文字母、数字或特殊字符(-_)中的两种
    extend("eNameNum", value => {
      //let re = /(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{8,12}/;
      let re = /^[a-zA-Z][\w\(\)\-]{6,32}$/;
      let reg = /^[A-Za-z]+$/;
      if (re.test(value) && !reg.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由6~32位大/小写字母,数字组合)";
    });
    //下拉框不为空
    extend("selected", {
      ...required,
      message: "请选择{_field_}"
    });
    //复选框不为空
    extend("checked", {
      ...required,
      message: "请勾选{_field_}"
    });
    
    //数字和字母
    extend("alpha_num", {
      ...required,
      message: "只能输入数字和字母"
    });
    //最小
    extend("min", {
      validate(value, args) {
        return value.toString().length >= args.length;
      },
      params: ["length"],
      message: "长度不能少于 {length} 个字符"
    });
    //最大
    extend("max", {
      validate(value, args) {
        return value.toString().length <= args.length;
      },
      params: ["length"],
      message: "长度不能超过 {length} 个字符"
    });
    
    //上传文件不能为空
    extend("file", {
      ...required,
      message: "请上传{_field_}"
    });
    // 字段最大字符,提示里面还有字段label,maxHasLabel:20
    extend("maxHasLabel", {
      validate(value, args) {
        return value.length <= args.length;
      },
      params: ["length"],
      message: "{_field_}不能超过{length}个字符"
    });
    
    // 区间范围 只能输入区间的字母或数字
    extend("section", {
      validate(value, args) {
        let temp = args.section.split("-");
        if (value.length >= temp[0] && value.length <= temp[1]) {
          return /^[0-9a-zA-Z]*$/g.test(value);
        }
        return false;
      },
      params: ["section"],
      message: "请输入{section}位数字或字母"
    });
    
    //3.自定义
    extend("num", value => {
      let re = /^[0-9]+$/;
      if (re.test(value)) {
        return true;
      }
      return "只能输入数字";
    });
    //大于1的正整数
    extend("nums", value => {
      let re = /^\+?[1-9]\d*$/;
      if (re.test(value)) {
        return true;
      }
      return "只能输入大于0的正整数";
    });
    //只能输入数字,切保留两位小数
    extend("numss", value => {
      let re = /^\d+(\.\d{1,2})?$/;
      if (re.test(value) && Number(value) > 0) {
        return true;
      }
      return "只能输入大于0的数字,且保留两位小数";
    });
    //正确的url跳转地址
    extend("url", value => {
      let re = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的产品地址";
    });
    //手机号
    extend("mobile", value => {
      let re = /^1[3456789]\d{9}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的手机号码";
    });
    
    //手机号(仅供api管理服务应用使用)
    extend("mobiles", value => {
      let re = /^1[0123456789]\d{9}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的手机号码";
    });
    
    //菜单编码,MENU+6位数字
    extend("menuCode", value => {
      let re = /^MENU\d{6}$/;
      if (re.test(value)) {
        return true;
      }
      return "{_field_}格式错误";
    });
    
    //菜单顺序,仅1-8位正整数
    extend("menuOrder", value => {
      let re = /^[1-9]\d{0,7}$/;
      if (re.test(value)) {
        return true;
      }
      return "{_field_}格式错误";
    });
    extend("eNameNum", value => {
      //let re = /(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{8,12}/;
      let re = /^[a-zA-Z][\w\(\)\-]{6,32}$/;
      let reg = /^[A-Za-z]+$/;
      if (re.test(value) && !reg.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由6~32位大/小写字母,数字组合)";
    });
    //连接地址:http://* | https://*
    extend("httpUrl", value => {
      let re = /^(http|https):\/\/([\w.]+\/?)\S/;
      if (re.test(value)) {
        return true;
      }
      return "{_field_}格式错误";
    });
    //url地址,可以不用http开头
    extend("looseUrl", value => {
      let re = /^((http|https):\/\/)?([\w.]+\/?)\S/;
      if (re.test(value)) {
        return true;
      }
      return "{_field_}格式错误";
    });
    //8-32位带大小写,数字,特殊字符任意两种 (?!([^(0-9a-zA-Z)])+$)
    extend("checkPassword", value => {
      // let re = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{8,32}$/;
      var re = /^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)(?![\W_]+$)\S{8,32}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入8-32个字符,至少包含大写字母、小写字母、数字和特殊字符中的两种";
    });
    
    //不能输入中文
    extend("notChinese", value => {
      let re = /^[^\u4e00-\u9fa5]+$/;
      if (re.test(value)) {
        return true;
      }
      return "不能包含中文";
    });
    
    //由中文字符、英文字母、数字、中划线、下划线/.
    extend("mixedInput", value => {
      let re = /^[\u4e00-\u9fa5_a-zA-Z0-9-_.]+$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由中文字符、英文字母、数字、中划线、下划线和点组成)";
    });
    // 由字母、汉字、“•”
    extend("pointStr", value => {
      let re = /^[\u4e00-\u9fa5_a-zA-Z_·]+$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由字母、汉字和点组成)";
    });
    // 输入小数(默认是小数点前八位后两位)
    extend("decimalNum", (value, args) => {
      let pointS = Number(args[0]) || 7;
      let pointE = Number(args[1]) || 2;
      let reg = new RegExp(
        `^[+-]?(0|([1-9]\\d{0,${pointS}}))(\\.\\d{1,${pointE}})?$`,
        "g"
      );
      let res = reg.test(value);
      if (!res) {
        return `最多输入小数点前${pointS + 1}位和小数点后${pointE}位`;
      }
      return true;
    });
    // 数字限制
    extend("decimalLeval", (value, args) => {
      let min = Number(args[0]);
      let max = Number(args[1]);
      try {
        let cur = Number(value);
        if (cur >= min && cur <= max) {
          return true;
        }
        return `只能输入${min}${max}范围的值`;
      } catch (e) {
        return "请输入小数";
      }
    });
    // 数字限制2
    extend("decimalLeval2", (value, args) => {
      let min = Number(args[0]);
      let max = Number(args[1]);
      let len = 0;
      if (value.toString().indexOf(".") >= 0) {
        len = value.split(".")[1].length;
      }
      try {
        let cur = Number(value);
        if (cur >= min && cur <= max && len <= 4) {
          return true;
        }
        return `只能输入0.0001到99999999999999.9999范围的值`;
      } catch (e) {
        return "请输入小数";
      }
    });
    //PT- 广告位编码
    extend("adCode", value => {
      let re = /^PT\_[a-zA-Z0-9]{1,10}_[a-zA-Z0-9]{1,10}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(格式:PT_index_banner)";
    });
    //数字 字母 100字以内
    extend("productNum", value => {
      let re = /^ZB[a-zA-Z0-9]{1,100}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}";
    });
    //只支持数字字母汉字
    extend("productName", value => {
      let re = /^[\u4E00-\u9FA5A-Za-z0-9]+$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由数字、字母、汉字组成)";
    });
    extend("attrtNum", value => {
      let re = /[^\u4e00-\u9fa5]{1,100}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(100以内,数字、字母、特殊字符组成)";
    });
    extend("strategyName", value => {
      let re = /^[a-zA-Z][0-9a-zA-Z]{0,100}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由字母开头,数字、字母组成)";
    });
    //属性名称 不允许特殊字符 18位以内
    ///[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%&*()\-+={}|《》?:“”【】、;‘’,。、]/im;
    extend("accessControl", value => {
      // ^[a-zA-Z\u4e00-\u9fa5][\u4e00-\u9fa5a-zA-Z-z0-9]$
      let re = /^[a-zA-Z\u4e00-\u9fa5][\u4e00-\u9fa5a-zA-Z-z0-9]{0,49}$/;
      if (re.test(value)) {
        return true;
      }
      return "由中文、数字、字母组成,首字符不为数字";
    });
    
    //属性名称 不允许特殊字符 18位以内
    ///[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%&*()\-+={}|《》?:“”【】、;‘’,。、]/im;
    extend("attrName", value => {
      let re = /^[\u4e00-\u9fa5a-zA-Z-z0-9]+$/im;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由中文、数字、字母组成)";
    });
    // 联系电话  同时校验手机号和座机号
    extend("telephone", value => {
      // let re = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/im;
      let re = /^[\(\)\s0-9-\+]{4,20}$/;
    
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的联系电话";
      // return "请输入正确的{_field_}(手机或座机,如 130******** 或 010-********)";
    });
    extend("selectRequired", {
      ...required,
      message: "请选择{_field_}"
    });
    extend("productAreas", {
      ...required,
      message: "请选择地区产品"
    });
    extend("selectMin", (value, args) => {
      if (value.length > 0) {
        return true;
      }
      return `请至少选择${args[0]}项`;
    });
    //最低折扣  0-10 精确到小数点后一位 的正则  ^(\d|10)(\.\d)?$
    extend("discount", value => {
      let re = /^\+?(?:\d(?:\.\d)?|10(?:\.0)?)$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入0-10之内的数字,精确到小数点后1位";
    });
    
    //最低折扣  0-10 精确到小数点后一位 的正则  ^(\d|10)(\.\d)?$
    extend("setDiscount", {
      validate(value, bpdata) {
        if (value == "0" || value > "1") {
          return "请输入正确的折扣";
        }
        if (value == "" || value == null) {
          return "请输入折扣";
        }
        if (bpdata[0] == "undefined" || bpdata[0] == "") {
          bpdata[0] = 0;
        }
        if (value > 0 && value < bpdata[0]) {
          return "客户云厂商折扣不能低于伙伴最低折扣";
        }
        let re = /^\d+(\.\d{1,2})?$/;
        if (re.test(value)) {
          return true;
        }
        if (!isNaN(value) && typeof value === "number") {
          return true;
        }
        return "请输入正确的折扣";
      }
    });
    extend("requiredData", {
      validate(value, discount) {
        if (discount[0] == "1") {
          return;
        }
      }
    });
    
    //1-28的数字
    extend("twoNum", value => {
      let re = /^[1-9]$|^[1][0-9]$|^[2][0-8]$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入1-28的数字";
    });
    //1-28的数字
    extend("orderRule", value => {
      let re = /^[0-9a-zA-Z,]*$/g;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}格式";
    });
    //1-999的整数
    extend("nineNum", value => {
      let re = /^\+?[1-9]{1}[0-9]{0,2}\d{0,0}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入1-999的整数";
    });
    
    //0.01-9999999.99的数字
    extend("ninesNum", value => {
      // let re = /^([1-9]\d{0,3}$)|(^0\.\d{1,2}$)|(^[1-9]\d{0,3}\.\d{2})$/;
      // if (re.test(value)) {
      //   return true;
      // }
      // return "请输入0.01-9999999.99的数字";
      // var reg = /\d+(\.\d{0,2})?/
    
      if (value.indexOf(".") != -1) {
        let arr = value.split(".");
        if (arr[1].length > 2) {
          return "不能超过两位小数";
        }
      }
      if (value <= 9999999.99 && value >= 0.01) {
        return true;
      } else {
        return "请输入0.01-9999999.99的数字";
      }
    });
    // 比较时间大小
    extend("after", {
      validate(value, _a) {
        var target = _a.target;
        if (!!!value || !!!target) return true;
        try {
          if (new Date(value) < new Date(target)) {
            return `{_field_}不能早于${_a.field}`;
          } else {
            return true;
          }
        } catch (error) {
          return "请输入正确的时间格式";
        }
      },
      params: [
        {
          name: "target",
          isTarget: true
        },
        {
          name: "field"
        }
      ]
    });
    extend("before", {
      validate(value, _a) {
        var target = _a.target;
        if (!!!value || !!!target) return true;
        try {
          if (new Date(value) > new Date(target)) {
            return `{_field_}不能晚于${_a.field}`;
          } else {
            return true;
          }
        } catch (error) {
          return "请输入正确的时间格式";
        }
      },
      params: [
        {
          name: "target",
          isTarget: true
        },
        {
          name: "field"
        }
      ]
    });
    extend("postattrName", value => {
      let re = /^[\u4e00-\u9fa5a-zA-Z-z0-9(\)(\)[\]<\>_{\}]+$/im;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由中文、数字、字母组成)";
    });
    // 拨款/回收金额 校验  ---金额不能超出余额
    extend("recycleamount", {
      validate(value, args = [0.01, 0.01]) {
        let amount = args[0],
          brokerAmount = args[1];
        if (Number(value) > Number(amount)) {
          return "拨款金额不能大于可拨款额度";
        }
        if (Number(value) > Number(brokerAmount)) {
          return "拨款金额不能大于客户Broker余额";
        } else {
          return true;
        }
      }
    });
    extend("recoveryamount", {
      validate(value, args = [0.01]) {
        let amount = args[0];
        if (Number(value) > Number(amount)) {
          return "回收金额不能大于账户余额";
        } else {
          return true;
        }
      }
    });
    // 最大数字
    extend("maxNum", {
      validate(value = 0, args = 0) {
        if (!value || isNaN(value)) {
          return "{_field_}格式不正确";
        }
        if (parseFloat(value) > parseFloat(args)) {
          return `{_field_}不能超过${args}`;
        }
        return true;
      }
    });
    // 最小数字
    extend("minNum", {
      validate(value = 0, args = 0) {
        if (!value || isNaN(value)) {
          return "{_field_}格式不正确";
        }
        if (parseFloat(value) < parseFloat(args)) {
          return `{_field_}不能低于${args}`;
        }
        return true;
      }
    });
    // 金额 有效位数传参,默认2位
    extend("money", {
      validate(value, args = [2, 0, 99999999.99]) {
        // args[0] 保留位数
        // args[1] 最小值
        // args[2] 最大值
        let digit = args[0] || 2;
        let minNum = args[1] || 0;
        let maxNum = args[2] || 99999999.99;
        if (isNaN(Number(value))) {
          return `请输入${minNum}~${maxNum}的数字`;
        }
        let re = new RegExp(
          `^(0|([1-9][0-9]*)|([0]\.[0-9]{1,2})|([1-9][0-9]*\.[0-9]{1,${digit}}))$`
        );
        if (digit == "0") {
          re = new RegExp(`^[1-9][0-9]*$`);
        }
        if (re.test(value)) {
          if (parseFloat(value) < minNum || parseFloat(value) > maxNum) {
            return `请输入${minNum}~${maxNum}的数字`;
          } else {
            return true;
          }
        } else {
          let valStr = value + "";
          if (
            valStr.indexOf(".") !== -1 &&
            valStr.slice(valStr.indexOf(".") + 1).length > digit
          ) {
            return `小数点后仅支持两位有效位数`;
          }
          return `请输入${minNum}~${maxNum}的数字`;
        }
      }
    });
    //数据权限包名称  4-20位,输入类型不包含除“下划线”、“中划线”、“中英文小括号/中括号”以外的特殊字符。
    extend("dataName", value => {
      let re = /^[\u4e00-\u9fa5_a-zA-Z0-9-_.\\(\\)\\【\\】\\(\\)\[.*\]]+$/;
      if (re.test(value)) {
        return true;
      }
      return "由中文字符、英文字母、数字、中划线、下划线和中英文小括号/中括号组成";
    });
    
    // 最小值不能大于最大值
    extend("mintomax", (value, args) => {
      if (args[0] == "" && args[1]) {
        return `请输入最小值`;
      }
      if (args[1] == "" && args[0]) {
        return `请输入最大值`;
      }
      let min = Number(args[0]);
      let max = Number(args[1]);
      if (min >= max) {
        return `最小值不能大于最大值`;
      } else {
        return true;
      }
    });
    
    // IP校验
    extend("IP", value => {
      let re = /^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])(\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)){2}(\.(1\d{2}|2[0-4]\d|25[0-4]|[1-9]\d|[1-9]))$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的IP";
    });
    //数据权限包名称  4-20位,输入类型不包含除“下划线”、“中划线”、“中英文小括号/中括号”以外的特殊字符。
    extend("dataName", value => {
      let re = /^[\u4e00-\u9fa5_a-zA-Z0-9-_.\\(\\)\\【\\】\\(\\)\[.*\]]+$/;
      if (re.test(value)) {
        return true;
      }
      return "由中文字符、英文字母、数字、中划线、下划线和中英文小括号/中括号组成";
    });
    extend("phoneEmailRule", {
      ...required,
      message: "手机号/邮箱至少填一项"
    });
    // 由字母汉字组成{6,18}
    extend("alphaChinese", value => {
      let re = /^[\u4e00-\u9fa5a-zA-Z-z]+$/im;
      if (re.test(value)) {
        return true;
      }
      return "由字母汉字组成";
    });
    
    //由数字+字母 组成 [A-Za-z][A-Za-z0-9]  字母开头
    extend("appCode", value => {
      let re = /^(?!^\d+$)(?!^[a-zA-Z]+$)[0-9a-zA-Z]$/;
      // let re= /^\d{3}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(英文字母开头,由4~32位大/小写字母,数字组合)";
    });
    
    // 并发量
    extend("concurrency", {
      validate(value, data) {
        if (value) {
          if (!data[0]) {
            return "请选择单位";
          }
        }
        if (value && data[0]) {
          if (value > 1000) {
            return "并发量不得大于1000";
          }
        }
        return true;
      }
    });
    // 并发量2
    extend("concurrency2", {
      validate(value, data) {
        console.log(value, data);
        if (value) {
          if (data == "null" || !data) {
            return "请输入并发量";
          }
        }
        return true;
      }
    });
    //配额
    extend("appQuota", value => {
      if (value > 1000) {
        return "配额不得大于1000";
      }
      return true;
    });
    
    //字母小写
    extend("letters", value => {
      let re = /^[a-zA-Z][a-zA-Z_]{1,31}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入英文字母";
    });
    
    //1-100的整数(用于api管理,后带%)
    extend("percentage", value => {
      let re = /^(1|([1-9]\d{0,1})|100)$/;
      //
      if (re.test(value)) {
        return true;
      }
      return "请输入1-100的整数";
    });
    //只支持数字字母汉字
    extend("productNames", value => {
      let re = /^[\u4E00-\u9FA5A-Za-z0-9+*]+$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由*、数字、字母、汉字组成)";
    });
    //api管理--api名称
    extend("apiNames", value => {
      let re = /^[\u4E00-\u9FA50-9a-zA-Z]{1,49}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由汉字、数字、字母组成)";
    });
    //api管理--转义后参数
    extend("apiSerParamNames", value => {
      let re = /^[a-zA-Z]{1,32}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由英文字母组成)";
    });
    //api管理-参数名
    extend("parameters", value => {
      let re = /^[a-zA-Z][a-zA-Z_]{1,32}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由字母开头,英文和下划线组成)";
    });
    //api管理-异常编码
    extend("validatePhones", value => {
      let re = /^[a-zA-Z][a-zA-Z0-9]{0,50}$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由字母开头,英文和数字组成)";
    });
    
    // 只支持字母和数字
    extend("LettersandNumbers", value => {
      let re = /^[A-Za-z0-9]+$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(由数字、字母组成)";
    });
    //由字母组成 具体限制到{args}位
    extend("letterNumConfine", {
      validate(value, args) {
        let re = /^[A-Za-z]+$/;
        if (!re.test(value)) {
          return `请输入正确的{_field_}(由字母组成)`;
        }
        if (value.length != args) {
          return `只能输入${args}位字母`;
        }
        return true;
      }
    });
    
    // extend("LimitingUnderline", value => {
    //   let re = /^[\u4e00-\u9fa5-a-zA-Z0-9-@\!\#\¥\%\.\&\*\(\)\…\{\}\[\]\.\,\<\>\:\;\|\"]+$/;
    //   if (re.test(value)) {
    //     return true;
    //   }
    //   return "请输入正确的{_field_}(由汉字、字母、数字、除下划线外组成)";
    // });
    
    // 匹配出下划线以外所有的字符
    extend("LimitingUnderline", value => {
      let re = /_/;
      if (!re.test(value)) {
        return true;
      }
      return "请输入正确的{_field_}(不包含下划线)";
    });
    //输入框不为空
    extend("requiredss", {
      ...required,
      message: "请输入异常内容"
    });
    //不能以-+=@开头
    extend("customName", value => {
      let re = /^(?![-=+@])/;
      if (re.test(value)) {
        return true;
      }
      return "不能以-=+@开头";
    });
    //且不能是纯特殊字符、纯数字、支持汉子、英文字母
    extend("regex", value => {
      let re = /^[\u4e00-\u9fa5a-zA-Z0-9]*([a-zA-Z][0-9][\u4e00-\u9fa5]|[\u4e00-\u9fa5a-zA-Z])[\u4e00-\u9fa5a-zA-Z0-9]*$/;
      if (re.test(value)) {
        return true;
      }
      return "不能输入纯数字、纯特殊字符,支持汉字、英文字母";
    });
    extend("backPaymentCode", value => {
      let re = /^[A-z0-9\-\.]{0,64}$/;
      if (re.test(value)) {
        return true;
      }
      return "支持0-64位数字、字母、“-”“.”";
    });
    //百分比
    extend("percent", value => {
      let re = /^(1|([1-9]\d{0,1})|100)$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入1-100的整数";
    });
    
    // 0-32的数字
    extend("percents", value => {
      let re = /^([0-9]|[1-2][0-9]|3[0-2])$/;
      if (re.test(value)) {
        return true;
      }
      return "请输入0-32的数字";
    });
    
    //机会点名称
    extend("chanceName", value => {
      let re = /^[\u4e00-\u9fa5a-zA-Z0-9]{4,16}$/;
      if (re.test(value)) {
        return true;
      }
      return "{_field_}仅支持4-16位数字、字母、汉字";
    });
    //合同编号
    extend("contractCode", value => {
      let re = /^[a-zA-Z0-9\-]{1,127}$/;
      if (re.test(value)) {
        return true;
      }
      return "{_field_}仅支持数字、字母、短连接线,最大可输入127位";
    });
    //合同名称
    extend("contractName", value => {
      let re = /^[\u4e00-\u9fa5a-zA-Z0-9]{1,127}$/;
      if (re.test(value)) {
        return true;
      }
      return "{_field_}仅支持数字、字母、汉字,最大可输入127位";
    });
    
    展开全文
  • vue 正则表达式

    2021-09-05 15:08:17
    vue 正则表达式 ps:正则表达式参考大全:https://www.cnblogs.com/yoyowin/p/12208917.html 常用的正则表达式 常用表达式 2 说明: \s 表示空白字符。包括,空格,制表符等 “” 只表示空格 \s+ 可匹配至少一个...

    vue 正则表达式

    ps:正则表达式参考大全:https://www.cnblogs.com/yoyowin/p/12208917.html

    常用的正则表达式

    常用表达式 2 说明:
    \s 表示空白字符。包括,空格,制表符等
    “” 只表示空格
    \s+ 可匹配至少一个空白字符
    [ ]+ 只表示多个空格

    1. 匹配非法字符: /[@#\$%\^&*\s+]+/g
    2. 关键字中含有特殊字符:/[~!@#$%^&()_-+=<>?:"{}|,.\/;'\ ·~!@#¥%……&()——-+={}|《》?:“”【】、;‘’,。、]/g
    3. 匹配中文:/[\u4e00-\u9fa5]+/g
    4. 匹配邮箱: /^([a-zA-Z0-9]+[|_|.]?)[a-zA-Z0-9]+@([a-zA-Z0-9]+[|_|.]?)[a-zA-Z0-9]+.[a-zA-Z]{2,3}$/
    5. 匹配电话号码,包括固定电话与手机号码: /(^0\d{2,3}-\d{7,8}(-\d{1,6})?$)|(^0?1[34578]\d{9}$)/
    6. 1- 999999999999 的数字:/^[1-9]{1}\d{0,11}$/
    7. 1-100 的数字:/^([1-9]{1,2}|100)$/
    8. 身份证号:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
    9. 8-20 位字母,数字和特殊字符: /^(?=.\d)(?=.[a-zA-Z])(?=.[~!@#$%^&])[\da-zA-Z~!@#$%^&]{8,20}$/
    10. 6-20 位字母和数字 :/^(?=.\d)(?=.*[a-z])[a-zA-Z\d]{6,20}$/
    11. 14 位,最多 10 位整数,4 位小数:/^[1-9]\d{0,9}(.\d{1,4})?$|^0(.\d{1,4})?$/
    12. 营业执照号:/(^(?:(?![IOZSV])[\dA-Z]){2}\d{6}(?:(?![IOZSV])[\dA-Z]){10}$)|(^\d{15}$)/^[0-9]*$/
    13. 手机号正则,座机号正则,400 开头的正则:
      ^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$
      ^(((\d{3}))|(\d{3}-))?(1[3578]\d{9})$
      ^(400)-(\d{3})-(\d{4})(.)(\d{1,4})$
      ^(400)-(\d{3})-(\d{4}$))/
    14. 匹配 m-n 位的数字。由于开头结尾都是数字,所以它是一个固定长度的纯数字:/^\d{m,n}$/
    15. 匹配 - 开头,数字结尾,第一个字符为 1-9,随后 0-n 个字符为 0-9 的字符。即非零负整数:/^-[1-9][0-9]*$/
    16. 匹配邮件:/^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$/
    10-32位数字或字母:----------/^[a-zA-Z0-9]{10,32}$/     
    手机号:---------------------/^1[34578]\d{9}$/          
    座机号:---------------------/^(0\d{2,3}-){0,1}\d{7,8}$/    
    整数:-----------------------/^[0-9]+$/          
    不能包含中文:-----------------/^[^\u4e00-\u9fa5]+$/   
    只能全是中文:-----------------/^[\u4e00-\u9fa5]+$/    
    只能数字,且不能超过2位小数:--/^[0-9]+([.][0-9]{1,2})?$/     
    1518位身份证号:------------/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/    
    士官证号,例如:军字第2001988号:----/^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(?)$/  
    321位户口本号:------------------/^[a-zA-Z0-9]{3,21}$/     
    15或者17或者18或者20位字母、数字组成:---/^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/  
    至少12个字符,其中需包含大小写字母,2位以上数字和2位以上符号-----/(?=.*?[A-Z].*?)(?=.*?[a-z].*?)(?=.*?[0-9].*?[0-9])(?=.*?[~!@#$%^&*()_+|<>,.?/:;'\[\]{}\"].*?[~!@#$%^&*()_+|<>,.?/:;'\[\]{}\"])^\S{12,}$/
    邮箱:------------------------/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/    
    2020/05/21格式日期:----------(/^[0-9]{4}\/[0-9]{1,2}\/[0-9]{1,2}$/
    正数 大于等于0的整数或者小数  >=0 float------/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/
    正数 大于0的整数或者小数  >0 float----------/^[+]{0,1}[1-9][0-9]*$|^[+]{0,1}(\d+\.\d+)$/
    正整数 大于等于0的整数 >=0 int----------/^[+]{0,1}(\d+)$/
    正整数 大于0的整数 >0 int--------------/^\+?[1-9][0-9]*$/
    0-300整数------------------------/^[0-9]$|^[0-9]{2}$|^[1,2][0-9]{2}$|^[3][0][0]$/
    长度至少5,必须包含数字和大小写(可以含特殊字符)-----/^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*).{5,}$/
    长度至少5,必须包含数字和大小写(不能含特殊字符)-----/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{5,}$/
    

    正则表达式用法

    特殊字符及其用法
    • \ 将字符变为特殊或非特殊字符。如 n 变为换行符 \n,特殊符号 ( 变为字符 (。
    • ^ 匹配字符串起始位置。
    • $ 匹配字符串结束位置。
    • * 匹配前面的子表达式零到多次。
    • + 匹配前面的子表达式一到多次。
    • ? 匹配前面的子表达式零到一次。
    • {n} 匹配前面的子表达式的 n 个,如 o {2} 能够匹配 food 不能匹配 god。
    • {n,} 至少匹配 n 个前面的子表达式,如 o {2,} 能够匹配 fooooood 不能匹配 god。
    • {n, m} 至少匹配 n 次,至多匹配 m 次。
    • 非贪婪模式 默认为贪婪模式,如 o+ 将匹配 foooood 的所有 o。而非贪婪模式(在匹配符后面加?),如 o+? 则只会匹配一个 o
    • . 匹配除换行符外任何单个字符。换行符为 \n 和 \r。
    • (x) 捕获括号,匹配并记住匹配项。
    • (?:x) 非捕获括号,匹配并不记住匹配项。如 /(?:foo){1,2}/,这里将 foo 作为一个整体进行匹配 1 到 2 次。
    • x (?=y) 匹配 x 仅仅在 x 后面跟 y 的时候。?=y 表示字符串末尾是 y。
    • x (?!y) 匹配 x 仅仅在 x 后面不跟着 y 的时候。?!y 表示字符串末尾不是 y。
    • x|y 匹配 x 或 y,如 jack|rose 就可以匹配到 jack 和 rose 两个字符串。
    • [xyz] 匹配方括号内任意字符。
    • [^xyz] 反向字符集,匹配除方括号内字符的任意字符。
    • [0-9] 范围匹配,匹配 0-9 范围内任意字符。
    • \w 查找单词字符。单词字符包括:a-z、A-Z、0-9,以及下划线。
    • \W 查找非单词字符。
    • \d 查找数字字符。
    • \D 查找非数字字符。
    • \s 查找空白字符。空白字符包括空格、\n、\f、\r、\t、\v。
    • \S 查找非空白字符。
    • \b 匹配单词边界,通常匹配单词开头和结尾。如 /\bcd/ 匹配 cdkey。
    • \B 匹配非单词边界。如 /\Bcd/ 匹配 abcd。
    • \O 查找 NULL 字符。
    • \n 换行符。
    • \f 换页符。
    • \r 回车符。
    • \t 制表符。
    • \v 垂直制表符。

    修饰符

    i 执行对大小写不敏感的匹配。

    g 执行全局匹配。

    m 执行多行匹配。

    展开全文
  • 正则验证年龄 let checkAge = (rule, value, callback) => { let reg = /^(?:[1-9][0-9]?|1[01][0-9]|120)$/; //年龄是1-120之间有效 if (value == undefined) { callback([new Error("帐号输入不合法")]); ...
  • 使用httpclient抓取页面信息时需要填写HOST,使用正则提取抓取URL的HOST内容
  • 拿到一个新需求 就是在前端进行查询一个数据 (虽然一般这种行为都是在后端进行但是有时候就是会给你这个需求,这里因为数据量较小所以就进行简单的遍历查询 没有对数据进行排序后查询 其实有想过二分查找之类的 ...
  • el-form绑定:rules="addFormRules";...正则表达式验证邮箱和手机号码export default {data() {var checkMobile = (rule, value, cb) => {const regMobile = /^(0|86|17951)?(13[0-9]|15[012356789]|17[67...
  • 通过在 <el-form :inline="true" :model="dataForm" :rules="dataFormRules" ref="dataForm" :size="size" > </el-form> 里有 <el-form-item label="联系电话:" prop="phone" v-model="dataForm....
  • 本文给大家分享使用正则表达式来判断密码强弱的实例代码,非常不错,具有参考借鉴价值,需要的朋友参考下吧
  • 方法一:监控输入框的keyup事件,当value值的长度为4,8,12,16时,插入空格字符串“ ”(vue中代码片段如下) <input type=text v-model=bankCard @keyup=bankCardKeyup> bankCardKeyup (e) { let self = ...
  • 验证邮箱和手机号 //验证邮箱的规则 ...最后,看完本篇博客后,觉得挺有帮助的话,可以继续查看专栏其它内容嗷,一起来学习Vue吧~ 点击进入Vue❤学习专栏~ 学如逆水行舟,不进则退
  • vue常用正则表达式

    2020-12-08 14:12:08
    正整数: <el-input style="width: 200px" v-model="formSearchData.period" @input="(val) => {formSearchData.period = val.replace(/[^\d]/g, '');}" placeholder="计划期数" >...
  • vue验证正则表达式

    千次阅读 2021-01-14 16:17:09
    校验正则表达式 需求:不可以出现非法字符串和空格 正则表达式:都是写在/里面的/ \s是空格的意思,但是在这里需要一个转义符\ 在这个组件里面识别不了,所以加了转义符,大家可以试一下自己的组件中是否需要转义符 ...
  • //使用:getUrlParms,获取 网址xxx/ordersn; getOrderInfo:function () { var that=this; var loctionurl=window.location.href;//地址栏地址 that.order_sn=that.getUrlParms(loctionurl); //order_sn 订单编号 ...
  • Vue中的正则表达式

    千次阅读 2020-12-18 10:21:05
    正则修饰符: i 执行对大小写不敏感的匹配。 g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) m 执行多行匹配。 方括号用于查找某个范围内的字符: [abc] 查找方括号之间的任何字符 ...
  • <div v-html="filterWord(activity.optdesc)" ></div> filterWord (text) { if (text) { return text.replace(new RegExp('(点击查看子流程工单;)', 'g'), '<font color=#f89407>... },
  • <el-input v-model.trim="model.faceEffectName" @change="isEnglishString" placeholder="输入英文名字,用于腾讯识别文件夹名"></el-input> isEnglishString() { var englishString = this.model....
  • 9. VUE 常用正则表达式

    2019-09-26 20:13:55
    1. 判断输入是否是数字 var numReg = /^[0-9]+$/ var numRe = new RegExp(numReg) if (!numRe.test(number)) { this.$message({ type: 'warning', message: '请输入数字 ', ... sho...
  • 今天梅子问我 Vue router 里 path: “/redirect/...根据经验, 有 “.” 和 “*” 这两个符号, 很大机会是正则表达式 于是上 Vue router 官网搜 “正则” 果然在 “高级匹配模式” 篇找到了相关资料 正文 路由传参时,
  • 有时候可能需要使用动态的验证某个内容,所以如果正则表达式能够使用变量就好了,但是通过 /\w/ 这种方式声明的正则,是不能够使用模板字符串的。那么能够使用模板字符串的方式是使用 new 命令: let count = 1 let ...
  • /正则表达式特殊字符/修饰符(可选) 特殊字符 这里列一下正则的特殊字符及其用法,加深理解和映象。 * \ 将字符变为特殊或非特殊字符。如 n 变为换行符 \n,特殊符号 ( 变为字符 \(。 * ^ 匹配字符串起始位置。 * $...
  • vue、js正则表达式

    2021-06-02 11:35:47
    vue、js正则表达式 let str = '验证字符串' // 验证邮箱 str.match(/^[a-zA-Z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0...
  • vue 数字正则表达式详解

    千次阅读 2020-11-09 14:52:19
    tenantName: [{required: true,message: '请输入用户名... {min: 2,max: 7,message: '长度在 2 到 7 个字符'}, {pattern: /^(?!... 分开来注释一下: ^ 匹配一行的开头位置 ...[0-9]+$) 预测该位置后面不全是数字 ...[0-9A-Z.
  • vue中的正则表达式

    千次阅读 2018-11-22 10:22:05
    判断是否为数字或字母: var str = "hk001"; var regex = /^[A-Za-z0-9]$/; if(!regex.test(str)){ return false; } ...
  • 前言最近在看vue的模板解析成render这一块,顺便补一下正则的知识文件地址srccompilerparserhtml-parser.js1. attributeconst attribute = /^\s*([^\s”‘<>\/=]+)(?:\s*(=)\s*(?:”([^”]*)”+|'([^’]*)’+|...
  • 正则表达式身份证校验vue+element

    千次阅读 2020-04-03 15:52:35
    elementUI失去焦点校验身份证 <el-form-item label="证件号码:"> <el-input v-model="form.cardNum" @blur="cardBlur()" placeho...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,378
精华内容 6,151
关键字:

vue正则表达式使用

vue 订阅