Commit 86e3456a authored by “yiyousong”'s avatar “yiyousong”

perf: 完善表单校验函数

parent 13e21e21
// 只能为数字验证
export function isNumber(rule, value, callback) {
export function checkNumber(rule, value, callback) {
var number = /^\d+$/;
if (!number.test(value)) {
if (!value) {
if (rule.required) {
callback(new Error(rule.msg || "请输入内容"));
} else {
callback();
}
} else if (!number.test(value)) {
callback(new Error("格式有误,只能为数字"));
} else {
callback();
......@@ -12,18 +18,43 @@ export function isNumber(rule, value, callback) {
export const checkFlowNum = (rule, value, callback) => {
let reg = /^[A-Z][a-zA-Z0-9]{3,32}$/;
if (!value) {
callback(new Error("请输入流水编号"));
if (rule.required) {
callback(new Error(rule.msg || "请输入流水编号"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("格式为大写字母开头,4~32位"));
} else {
callback();
}
};
// 验证身份证(2代18位)
export function checkIdCard(rule, value, callback) {
let reg =
/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/;
if (!value) {
if (rule.required) {
callback(new Error(rule.msg || "请输入身份证号码"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("身份证号码格式不正确"));
} else {
callback();
}
}
// 验证英文
export const checkEn = (rule, value, callback) => {
let reg = /^[a-zA-Z]{2,15}$/;
if (!value) {
callback(new Error("请输入英文名称"));
if (rule.required) {
callback(new Error(rule.msg || "请输入英文名称"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("格式为字母a-z,A-Z,2~15位"));
} else {
......@@ -31,10 +62,15 @@ export const checkEn = (rule, value, callback) => {
}
};
// 验证账号
export const changeAccount = (rule, value, callback) => {
export const checkAccount = (rule, value, callback) => {
let reg = /^[a-zA-Z0-9_-]{4,16}$/;
if (!value) {
callback(new Error("请输入用户名"));
} else if (!/^[a-zA-Z0-9_-]{4,16}$/.test(value)) {
if (rule.required) {
callback(new Error(rule.msg || "请输入用户名"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("4到16位(字母,数字,下划线,中横线)"));
} else {
callback();
......@@ -42,14 +78,16 @@ export const changeAccount = (rule, value, callback) => {
};
// 验证密码
export const changePassWord = (rule, value, callback) => {
export const checkPassWord = (rule, value, callback) => {
let reg =
/^\S*(?=\S{8,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*()_+{}|:;<>,.?~])\S*$/;
if (!value) {
callback(new Error("请输入密码"));
} else if (
!/^\S*(?=\S{8,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*()_+{}|:;<>,.?~])\S*$/.test(
value
)
) {
if (rule.required) {
callback(new Error(rule.msg || "请输入密码"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(
new Error(
"最少8位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符"
......@@ -60,11 +98,15 @@ export const changePassWord = (rule, value, callback) => {
}
};
// 验证手机号码
export const changePhone = (rule, value, callback) => {
export const checkPhone = (rule, value, callback) => {
let reg = /^1[3-9]\d{9}$/;
if (!value) {
// callback(new Error("请输入手机号"));
callback();
} else if (!/^1[3-9]\d{9}$/.test(value)) {
if (rule.required) {
callback(new Error(rule.msg || "请输入手机号"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("手机号码格式不正确"));
} else {
callback();
......@@ -73,22 +115,30 @@ export const changePhone = (rule, value, callback) => {
// 验证座机号码
export const changeLandline = (rule, value, callback) => {
let reg = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
if (!value) {
// callback(new Error("请输入座机号"));
callback();
} else if (!/^[0][1-9]{2,3}-[0-9]{5,10}$/.test(value)) {
if (rule.required) {
callback(new Error(rule.msg || "请输入座机号"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("区号-电话号码"));
} else {
callback();
}
};
// 窗口编号验证(字母加数字 数字不能大于1000)
export const changeWindowNumber = (rule, value, callback) => {
// 窗口编号验证(字母加数字 数字不能大于999)
export const checkWindowNumber = (rule, value, callback) => {
let reg = /^[a-zA-Z]+\d{1,3}$/;
if (!value) {
callback(new Error("请输入窗口编号"));
callback();
} else if (!/^[a-zA-Z]+\d{1,3}$/.test(value)) {
if (rule.required) {
callback(new Error(rule.msg || "请输入窗口编号"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("字母+数字,数字不能大于999"));
} else {
callback();
......@@ -96,12 +146,101 @@ export const changeWindowNumber = (rule, value, callback) => {
};
// 校验编码
export const changeCodeNumber = (rule, value, callback) => {
export const checkeCodeNumber = (rule, value, callback) => {
let reg = /^[a-zA-Z\d]{2,30}$/;
if (!value) {
callback(new Error("请输入编码"));
if (rule.required) {
callback(new Error(rule.msg || "请输入编码"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("数字,字母2至30位"));
} else {
callback();
}
};
// 验证mac地址
export const checkMac = (rule, value, callback) => {
let reg =
/^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$/i;
if (!value) {
if (rule.required) {
callback(new Error(rule.msg || "请输入mac地址"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("mac地址格式错误"));
} else {
callback();
}
};
// 验证端口
export const checkPort = (rule, value, callback) => {
let reg =
/^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;
if (!value) {
if (rule.required) {
callback(new Error(rule.msg || "请输入端口号"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("端口号格式错误"));
} else {
callback();
}
};
// 验证ip
export const checkIp = (rule, value, callback) => {
let reg =
/^(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/;
if (!value) {
if (rule.required) {
callback(new Error(rule.msg || "请输入ip"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("ip格式错误"));
} else {
callback();
}
};
// 验证邮箱
export const ckeckEmail = (rule, value, callback) => {
let reg = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if (!value) {
if (rule.required) {
callback(new Error(rule.msg || "请输入邮箱"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("邮箱格式不正确"));
} else {
callback();
}
};
// 验证网址
export const ckeckUrl = (rule, value, callback) => {
let reg =
/^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/;
if (!value) {
if (rule.required) {
callback(new Error(rule.msg || "请输入网址"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("格式:数字,字母2至30位"));
callback(new Error("网址格式错误"));
} else {
callback();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment