export const validateMixin = {
methods: {
// 通用
// 校验中文、英文、数字、下划线
validateName(errorInfo) {
return (rule, value, callback) => {
// /^[0-9a-zA-Z_\-\.\u4e00-\u9fa5]{1,}$/
// let validFlag = /^[0-9a-zA-Z_\-\u4e00-\u9fa5]{1,}$/.test(value);
// 特殊字符和空格正则( 不包含-和_ )
let validFlag = /[`~!@#$%^&*()+=<>?:"{}|,\/;'\\[\]·!¥……()——《》?:“”【】、;‘,。、\s]/im.test(value);
// let validFlag = /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value);
if (validFlag) {
callback(new Error(errorInfo));
} else {
callback();
}
}
},
// 校验中文、英文、数字、下划线,不能以下划线开头
validateNameLine(errorInfo) {
return (rule, value, callback) => {
let validFlag = /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/.test(value);
if (!validFlag) {
callback(new Error(errorInfo));
} else {
callback();
}
}
},
// 校验英文、数字、下划线
validateEnName(errorInfo) {
return (rule, value, callback) => {
// /^[0-9a-zA-Z_\-\.\u4e00-\u9fa5]{1,}$/
let validFlag = /^[0-9a-zA-Z_]{1,}$/.test(value);
if (!validFlag) {
callback(new Error(errorInfo));
} else {
callback();
}
}
},
// 校验英文、数字、下划线,不能以下划线开头
validateEnNameLine(errorInfo) {
return (rule, value, callback) => {
let validFlag = /^(?!_)(?!.*?_$)[a-zA-Z0-9_]+$/.test(value);
if (!validFlag) {
callback(new Error(errorInfo));
} else {
callback();
}
}
},
// 校验IP
validateIP(errorInfo) {
return (rule, value, callback) => {
let validFlag = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/.test(value);
if (!validFlag) {
callback(new Error(errorInfo));
} else {
callback();
}
}
},
// 校验host
validateHost(errorInfo) {
return (rule, value, callback) => {
let validFlag = /^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?$/.test(value);
if (!validFlag) {
callback(new Error(errorInfo));
} else {
callback();
}
}
},
// 校验mobile
validateMobile(errorInfo) {
return (rule, value, callback) => {
if (!value) {
callback();
} else {
// let validFlag = /^[1][0-9]{10}$/.test(value);
let validFlag = new RegExp("^[1][0-9]{10}$").test(value);
if (!validFlag) {
callback(new Error(errorInfo));
} else {
callback();
}
}
}
},
// 仅api参数通用
/**
* 校验参数名
*/
validateReqParamName(rule, value, callback) {
if (!value) {
// 校验非空
callback(new Error(' '));
} else {
// 校验重名
let count = 0;
for (let i = 0; i < this.fieldsForm.reqFields.length; i++) {
if (this.fieldsForm.reqFields[i].name === value) {
count++;
if (count > 1) {
callback(new Error(' '));
}
}
}
}
callback();
},
/**
* 校验参数名
*/
validateResParamName(rule, value, callback) {
if (!value) {
// 校验非空
callback(new Error(' '));
} else {
// 校验重名
let count = 0;
for (let i = 0; i < this.fieldsForm.resFields.length; i++) {
if (this.fieldsForm.resFields[i].name === value) {
count++;
if (count > 1) {
callback(new Error(' '));
}
}
}
}
callback();
},
/**
* 校验默认值
*/
validateDefaultValue(rule, value, callback) {
// /(?<=\[)\S+(?=\])/g 打包后在safari浏览器有问题
let regex = new RegExp('(?<=\[)\S+(?=\])', 'g');
let indexArr = rule.field.match(regex);//匹配字符串中中括号内的内容,不包含中括号
let index = indexArr[0];
let curField = this.fieldsForm.reqFields[index];
let columnType = curField.columnType;
if (curField.required) callback();
try {
switch (columnType) {
case 'BOOLEAN':
this.fieldsForm.reqFields[index].defaultValue = value === 'true'
callback();
break;
case 'INT':
case 'LONG':
let tmpVal1 = parseInt(value);
if (isNaN(tmpVal1)) throw new Error('类型错误');
this.fieldsForm.reqFields[index].defaultValue = tmpVal1;
callback();
break;
case 'FLOAT':
case 'DOUBLE':
let tmpVal2 = parseFloat(value);
if (isNaN(tmpVal2)) throw new Error('类型错误');
this.fieldsForm.reqFields[index].defaultValue = tmpVal2;
callback();
break;
default: // STRING
callback();
break;
}
} catch (error) {
callback(new Error(' '));
}
},
/**
* 仅支持数字
*/
validateNumber(errorInfo) {
return (rule, value, callback) => {
let validFlag = /^[0-9]+$/.test(value);
if (!validFlag) {
callback(new Error(errorInfo));
} else {
callback();
}
}
},
/**
* 端口号校验
*/
validatePort(errorInfo) {
return (rule, value, callback) => {
let validFlag = /^([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{4}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/.test(value);
if (!validFlag) {
callback(new Error(errorInfo));
} else {
callback();
}
}
}
}
}
jsform校验
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 设置为奇校验,先看发送方将要发送的一帧数据中有几个1,如果是偶数个1则校验位置1,保证1的个数是奇数。如果是奇数就...
- 写了一段时间的vue,前端用了element-ui,经常会用到from表单,总结一下form表单的校验,以及遇到过...
- 数据链路层的作用 在原始的物理传输线路上传输数据信号是有差错的,存在一定的误码率,数据链路层存在的目的就是给原始二...
- 个人专题目录[//www.greatytc.com/u/2a55010e3a04] SpringBoot...