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