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

使用场景:

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-9u4e00-u9fa5()()]*$|^[a-zA-Z0-9u4e00-u9fa5]*$/  //  只允许中英文、数字、括号(必须成对)和下划线

 三、数据转换与过滤

搭配方法:

str.replace(' ', '
') //2个字符串的替换,空格替换成换行符

 str.replace(/xxx/, '') //通过正则校验进行,替换

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

 stringObject.replace(regexp/substr,replacement)

Str.replace(/w+/g, function(word){ //首字母换成大写
  return word.substring(0,1).toUpperCase()+word.substring(1);}
  );
原文地址:https://www.cnblogs.com/wheatCatcher/p/11287949.html