element ui 表单正则校验
export const validater = {
/**
* 校验 包括中文字、英文字母、数字和下划线
* 登录账号校验
*/
validateAccount(rule, value, callback) {
const acount = /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/;
if (value && !acount.test(value)) {
callback(new Error("账号不符合规范"));
} else {
callback();
}
},
/**
* 验证密码
* @param {*} rule
* @param {*} value
* @param {*} callback
*/
validatePass(rule, value, callback) {
if (value === "") {
callback(new Error("请设置正确格式的密码"));
} else if (value.length < 6) {
callback(new Error("密码长度最小6位"));
} else {
callback();
}
},
/**
* 验证邮箱
* @param {*} rule
* @param {*} value
* @param {*} callback
*/
validateEmail(rule, value, callback) {
if (value === "") {
callback(new Error("请输入邮箱地址"));
} else {
if (value !== "") {
const reg = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if (!reg.test(value)) {
callback(new Error("请输入有效的邮箱"));
}
}
callback();
}
},
/**
* IP地址校验
*/
ipAddress(rule, value, callback) {
if (value && value === "...") {
callback(new Error("请输入IP地址"));
}
if (
value &&
!/((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/.test(
value
)
) {
callback(new Error("IP地址不符合规范"));
} else {
callback();
}
},
/**
* 手机号码校验
*/
phoneNumber(rule, value, callback) {
if (
value &&
(!/^[1][34578]\d{9}$/.test(value) ||
!/^[1-9]\d*$/.test(value) ||
value.length !== 11)
) {
callback(new Error("手机号码不符合规范"));
} else {
callback();
}
},
/**
* 电话号码校验
*/
telephoneNumber(rule, value, callback) {
if (value && !/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/.test(value)) {
callback(new Error("电话号码不符合规范"));
} else {
callback();
}
},
// /**
// * 邮箱校验
// */
// emailValue(rule, value, callback) {
// const temp = /^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$/
// // const tempOne = /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/
// if (value && (!(temp).test(value))) {
// callback(new Error('邮箱格式不符合规范'))
// } else {
// callback()
// }
// },
/**
* 身份证号码校验
*/
idCard(rule, value, callback) {
if (
value &&
(!/\d{17}[\d|x]|\d{15}/.test(value) ||
(value.length !== 15 && value.length !== 18))
) {
callback(new Error("身份证号码不符合规范"));
} else {
callback();
}
},
/**
* 正整数校验
*/
integerP(rule, value, callback) {
if (value && !/^[1-9]\d*$/.test(value)) {
callback(new Error("只能填写正整数"));
} else {
callback();
}
},
/**
* 负整数校验
*/
integerN(rule, value, callback) {
if (value && !/^-[1-9]\d*$/.test(value)) {
callback(new Error("只能填写负整数"));
} else {
callback();
}
},
/**
* 角色编码校验
*/
roleCode(rule, value, callback) {
if (!value) {
callback(new Error("请输入角色编码"));
} else {
if (value && !/^[A-Z]+$/.test(value)) {
callback(new Error("请输入正确角色编码"));
} else {
callback();
}
}
},
/**
* 英文字符校验
*/
enText(rule, value, callback) {
if (!value) {
callback(new Error("不能为空"));
} else {
let a = "",
arr = value.split(" ");
for (let i = 0; i < arr.length; i++) {
//删除行内空格
a += arr[i];
}
if (a && !/^[A-Za-z]+$/.test(a)) {
callback(new Error("请输入正确内容"));
} else {
callback();
}
}
},
/**
* 中文字符英文字符校验
*/
ChEnText(rule, value, callback) {
if (value && !/^[A-Za-z0-9]+$/.test(value)) {
callback(new Error("只能填写数字和英文字符"));
} else {
callback();
}
},
/**
* 中文字符校验
*/
cnText(rule, value, callback) {
// let a = '',
// arr = value.split(" ")
// for (let i = 0; i < arr.length; i++) { //删除行内空格
// a += arr[i];
// }
if (value && /[^\u4e00-\u9fa5]/.test(value)) {
callback(new Error("只能填写中文字符"));
} else {
callback();
}
},
/**
* 只能输入英文或者数字
*/
enOrnunText(rule, value, callback) {
if (value && !/^[A-Za-z0-9]+$/.test(value)) {
callback(new Error("只能填写英文或者数字"));
} else {
callback();
}
},
/**
* 20位数字国标编码校验,且为正整数
*/
validateDeviceNo(rule, value, callback) {
if (value && !/^[1-9]\d*$/.test(value)) {
callback(new Error("只能填写正整数"));
} else {
if (!/^[0-9]{20}$/.test(value)) {
callback(new Error("请输入20位数字的编码!"));
} else {
callback();
}
}
},
/**
*校验电脑Mac地址
*以xx-xx-xx-xx-xx-xx的形式输入(xx为16进制数字)
*/
validateMac(rule, value, callback) {
const temp = /[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}/;
if (!temp.test(value)) {
callback(new Error("请输入xx-xx-xx-xx-xx-xx形式的MAC地址!"));
} else {
callback();
}
},
/**
* 校验地址代码或者分组代码
*/
validateCode(rule, value, callback) {
const num = /^[1-9]\d*$/;
if (value && !num.test(value)) {
callback(new Error("只能填写正整数"));
} else {
const codeLen = value.toString().length;
console.log(codeLen);
if (codeLen > 0 && codeLen % 3 !== 0) {
callback(new Error("输入的长度必须是3的倍数"));
} else if (codeLen > 18) {
callback(new Error("输入的长度不能超过18位,请重新输入"));
} else {
callback();
}
}
},
/**
* 校验字符长度
*/
validateLength(rule, value, callback) {
const codeLen = value.toString().length;
if (codeLen > 18) {
callback(new Error("输入的长度不能超过20位,请重新输入"));
}
},
/**
* 数字 ,两位
*/
validateTwoNum(rule, value, callback) {
const temp = /^[1-9]{2}$/;
if (!temp.test(value)) {
callback(new Error("请输入两位正整数!"));
} else {
callback();
}
}
};