使用场景:
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 }