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+$/; 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("格式有误,只能为数字")); callback(new Error("格式有误,只能为数字"));
} else { } else {
callback(); callback();
...@@ -12,18 +18,43 @@ export function isNumber(rule, value, callback) { ...@@ -12,18 +18,43 @@ export function isNumber(rule, value, callback) {
export const checkFlowNum = (rule, value, callback) => { export const checkFlowNum = (rule, value, callback) => {
let reg = /^[A-Z][a-zA-Z0-9]{3,32}$/; let reg = /^[A-Z][a-zA-Z0-9]{3,32}$/;
if (!value) { if (!value) {
callback(new Error("请输入流水编号")); if (rule.required) {
callback(new Error(rule.msg || "请输入流水编号"));
} else {
callback();
}
} else if (!reg.test(value)) { } else if (!reg.test(value)) {
callback(new Error("格式为大写字母开头,4~32位")); callback(new Error("格式为大写字母开头,4~32位"));
} else { } else {
callback(); 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) => { export const checkEn = (rule, value, callback) => {
let reg = /^[a-zA-Z]{2,15}$/; let reg = /^[a-zA-Z]{2,15}$/;
if (!value) { if (!value) {
callback(new Error("请输入英文名称")); if (rule.required) {
callback(new Error(rule.msg || "请输入英文名称"));
} else {
callback();
}
} else if (!reg.test(value)) { } else if (!reg.test(value)) {
callback(new Error("格式为字母a-z,A-Z,2~15位")); callback(new Error("格式为字母a-z,A-Z,2~15位"));
} else { } else {
...@@ -31,10 +62,15 @@ export const checkEn = (rule, value, callback) => { ...@@ -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) { if (!value) {
callback(new Error("请输入用户名")); if (rule.required) {
} else if (!/^[a-zA-Z0-9_-]{4,16}$/.test(value)) { callback(new Error(rule.msg || "请输入用户名"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("4到16位(字母,数字,下划线,中横线)")); callback(new Error("4到16位(字母,数字,下划线,中横线)"));
} else { } else {
callback(); callback();
...@@ -42,14 +78,16 @@ export const changeAccount = (rule, value, 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) { if (!value) {
callback(new Error("请输入密码")); if (rule.required) {
} else if ( callback(new Error(rule.msg || "请输入密码"));
!/^\S*(?=\S{8,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*()_+{}|:;<>,.?~])\S*$/.test( } else {
value callback();
) }
) { } else if (!reg.test(value)) {
callback( callback(
new Error( new Error(
"最少8位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符" "最少8位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符"
...@@ -60,11 +98,15 @@ export const changePassWord = (rule, value, callback) => { ...@@ -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) { if (!value) {
// callback(new Error("请输入手机号")); if (rule.required) {
callback(new Error(rule.msg || "请输入手机号"));
} else {
callback(); callback();
} else if (!/^1[3-9]\d{9}$/.test(value)) { }
} else if (!reg.test(value)) {
callback(new Error("手机号码格式不正确")); callback(new Error("手机号码格式不正确"));
} else { } else {
callback(); callback();
...@@ -73,22 +115,30 @@ export const changePhone = (rule, value, callback) => { ...@@ -73,22 +115,30 @@ export const changePhone = (rule, value, callback) => {
// 验证座机号码 // 验证座机号码
export const changeLandline = (rule, value, callback) => { export const changeLandline = (rule, value, callback) => {
let reg = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
if (!value) { if (!value) {
// callback(new Error("请输入座机号")); if (rule.required) {
callback(new Error(rule.msg || "请输入座机号"));
} else {
callback(); callback();
} else if (!/^[0][1-9]{2,3}-[0-9]{5,10}$/.test(value)) { }
} else if (!reg.test(value)) {
callback(new Error("区号-电话号码")); callback(new Error("区号-电话号码"));
} else { } else {
callback(); callback();
} }
}; };
// 窗口编号验证(字母加数字 数字不能大于1000) // 窗口编号验证(字母加数字 数字不能大于999)
export const changeWindowNumber = (rule, value, callback) => { export const checkWindowNumber = (rule, value, callback) => {
let reg = /^[a-zA-Z]+\d{1,3}$/;
if (!value) { if (!value) {
callback(new Error("请输入窗口编号")); if (rule.required) {
callback(new Error(rule.msg || "请输入窗口编号"));
} else {
callback(); callback();
} else if (!/^[a-zA-Z]+\d{1,3}$/.test(value)) { }
} else if (!reg.test(value)) {
callback(new Error("字母+数字,数字不能大于999")); callback(new Error("字母+数字,数字不能大于999"));
} else { } else {
callback(); callback();
...@@ -96,12 +146,101 @@ export const changeWindowNumber = (rule, value, 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}$/; let reg = /^[a-zA-Z\d]{2,30}$/;
if (!value) { 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)) { } else if (!reg.test(value)) {
callback(new Error("格式:数字,字母2至30位")); callback(new Error("网址格式错误"));
} else { } else {
callback(); 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