本文是自己在开发过程中遇到的一些需要进行正则验证的规则,再此记录方便后续使用,如有同行同仁有需要也可供参考:
一、在vue中需要自定义校验器方法示例:
var validateItemsLabelName = (rule, value, callback) => {
if (value !== '') {
var reg = /^[\u4e00-\u9fa5]{0,10}$/
if (!reg.test(value)) {
callback(new Error('仅允许输入10个以内汉字字符'))
}
}
callback()
}
/**
* 电话号码和手机号码校验
* 电话号码正则表达式(支持手机号码,3-4位区号,7-8位直拨号码,1-4位分机号)
*/
var validatePhoneNumber = (rule, value, callback) => {
if (value !== '') { //
var reg = /((^[1][3456789]\d{9}$)|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)/
if (!reg.test(value)) {
callback(new Error('请输入正确的手机号码或者座机号码'))
}
}
callback()
}
// 使用校验器
rules: {
input: [
{ validator: validateItemsLabelName, trigger: 'change' }
],
inputm: [
{ validator: validatePhoneNumber, trigger: 'change' }
]
}
二、正则表达式记录
验证只是中文字符
^[\u4e00-\u9fa5]{0,}$ // 只允许中文,0到无限次循环
验证匹配0到10位纯数字或者是0到10位纯字母(大小写),二者不可混合
((^[0-9]{0,10}$)|(^[a-zA-Z]{0,10}$)$)
手机号码、座机号码(支持1到4位分机号码)
((^[1][3456789]\d{9}$)|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)
身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X
(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)
Email地址
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
帐号是否合法(字母开头,允许6-18字节,允许字母数字下划线)
^[a-zA-Z][a-zA-Z0-9_]{5,17}$
匹配输入的空格
^[^\s]*$
匹配纳税人识别号15、18、20位大写字母和数字组合
var reg = /^[A-Z0-9]{15}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/
匹配0和正整数做数量校验使用
var reg = /^([1-9]\d*|0)$/
身份证号脱敏
formatidnum(cn) {
const cnum = cn.replace(
/^((\d{6})\d+(\d{3}[0-9xX]))$/,
"$2********$3"
);
return cnum;
},
formatidnum("22612320041009862X"); // 226123********862X
在使用中还会更新……