正则校验——日常通用补充

使用场景:

1.表单校验:

2.自定义校验:

3.数据过滤:

 

一、表单校验:

{ pattern: /xxxx/, message: 'xxxx', trigger: 'blur' } { validator: validatorFun,required: true, type:'array' }
    const validateFun = (rule, value, callback) => {
      if (value) {
        const pattern= /^[\u4E00-\u9FA5a-zA-Z0-9_]+$/
        if (!value.match(pattern)) {
          callback(new Error('只允许中英文、数字、下划线'))
        } else if (this.formInfo.tableWideName.indexOf(value) !== -1) {
          callback(new Error('该命名已存在'))
        } else {
          callback()
        }
      } else {
        callback(new Error('请输入特征宽表名'))
      }
    }

1.只允许中英文、数字、下划线(如果允许为空,则把+改成*)

/^[\u4E00-\u9FA5a-zA-Z0-9_]+$/
拆分: /[\u4e00-\u9fa5]/ + /^\w+$/ 等效: [a-zA-Z0-9_] = \w   2.只允许数字与英文句号搭配
/^\d+\.\d+\.\d+$/

 

    二、自定义校验: 校验方法:

 【1.js】:  parttern.test(val)   或   parttern.match(val)  或   parttern.exec(val)

  const parttern = /xxx/
  const val = 'xxxx'

  【2.php】:  preg_match($parttern,$val)
  $parttern = "/xxx/"
  $val = "xxx"
  1.限制开始与结尾的参数:如必须是${xxx}格式
/^\$\{\w+\}$/   //  ^表示开始应该是xxx,在方括号内则意思相反。即不出现xxx

2.限制重复的次数:

/^[a-zA-Z0-9_]{1,}$/  //  {}表示重复次数,即至少有1个左侧的内容
 /^[a-zA-Z][a-zA-Z0-9-]{0,}$/  //  至少有0个中英文、数字、短横杆(-)

3.限制数值大小:


 /^([1-9][0-9]{0,1})$|^([1-2][0-3][0-9])$|^240$|^\$\{\w+\}$/ //  必须是大于0小于240的整数或者格式${key}

 /^([0-9][0-9]{0,1})$|^100$|^\$\{\w+\}$/  //  必须在0-100之间或者格式${key}

4.复杂的校验

 /(?=.*\(.*\)|.*(.*))^[a-zA-Z0-9\u4e00-\u9fa5()()]*$|^[a-zA-Z0-9\u4e00-\u9fa5]*$/  //  只允许中英文、数字、括号(必须成对)和下划线

 三、数据转换与过滤

搭配方法:

str.replace(/xxx/, '')

(str || '').replace(/"connectionId"\:"[\S]+"/g, '') //去除指定内容
str.replace(/\s/ig, '')  //去除所有空格
str.replace(/,/g, ',') // 中文逗号转化为英文逗号
str.replace(' ', '\n') //遍历时去除所有json返回的换行符(或注释内容//)
   function deleteJson (value) {
      let result = ''
      let lines = value.split('\n')
      lines.forEach(val => {
        let n = val.indexOf('//')
        let str = n === -1 ? val : val.substring(0, n)
        str.trim()
        result += str
      })
      return result
    }

 

上一篇:密码 数字,字母,符号 组合正则判断


下一篇:常用正则表达式总结