最近项目用到的正则表达式
密码
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线)
var a1= (rule, value, callback) => {
var b1 = /^[a-zA-Z]\w{5,17}$/
if (!value) {
callback(new Error("请输入******"));
} else {
if (b1 .test(value)) {
callback();
} else {
callback(new Error("请输入****"));
}
}
};
身份证校验
var a1= (rule, value, callback) => {
if (!value) {
callback(new Error("请输入身份证号"));
} else if (
value &&
(!/\d{17}[\d|x]|\d{15}/.test(value) ||
(value.length !== 15 && value.length !== 18))
) {
callback(new Error("身份证号码不符合规范"));
} else {
callback();
}
};
手机号校验(包含座机如:0558-5674423)
第一种:手机号和座机都可以校验
var a1= (rule, value, callback) => {
const reg = /((^0[0-9]{2,3}-[0-9]{8})|(^1(3|4|7|5|8|9|6|2)([0-9]{9}))|(^400[0-9]{7})|(^800[0-9]{7}))|(^(400)-(\d{3})-(\d{4})(.)(\d{1,4})$)|(^(400)-(\d{3})-(\d{4}$))|(^(800)-(\d{3})-(\d{4})(.)(\d{1,4})$)|(^(800)-(\d{3})-(\d{4}$))$/;
if (!value) {
callback(new Error("请输入电话"));
} else {
if (reg.test(value)) {
callback();
} else {
callback(new Error("电话号码不符合规范"));
}
}
};
第二种:纯手机号校验
var a1= (rule, value, callback) => {
if (!value) {
callback(new Error("请输入手机号"));
} else if (
value &&
(!/^[1][345789]\d{9}$/.test(value) ||!/^[1-9]\d*$/.test(value) ||value.length !== 11)
) {
callback(new Error("请输入正确的手机号"));
} else {
callback();
}
};
邮箱
两种不同的邮箱校验 b1和b2
var a1= (rule, value, callback) => {
let b1= /^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$/;
let b2= /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/;
if (!value) {
callback(new Error("请输入邮箱"));
} else if (value && !b1.test(value)) {
callback(new Error("邮箱格式不符合规范"));
} else {
callback();
}
};
税号校验
包含:15位 17位 18位 20位 + 大写字母
var a1= (rule, value, callback) => {
const reg = /^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/;
if (!value) {
callback(new Error("请输入******"));
} else {
if (reg.test(value)) {
callback();
} else {
callback(new Error("请输入*****"));
}
}
};
打折校验
大于等于0,小于10 保留两位小数
var a1= (rule, value, callback) => {
const reg = /^((0\.[0-9]{1,2})|(([0-9]{1,2})(\.\d{1,2})?))$/;
if (!value) {
callback(new Error("请输入***"));
} else if (!Number(value) && value != 0) {
callback(new Error("请输入数字"));
} else if (Number(value) >= 10) {
callback(new Error("请输入小于10数字"));
} else if (value == 0) {
callback();
} else if (Number(value) < 0 && value != 0) {
callback(new Error("请输入大于0数字"));
} else {
if (reg.test(value)) {
callback();
} else {
callback(new Error("最多只能输入两位小数"));
}
}
};
数字校验
1.纯数字—保留两位小数 书写的记得考虑数字“0”
var a1= (rule, value, callback) => {
const reg = /^\d+.?\d{0,2}$/;
if (!value) {
callback(new Error("请输入**"));
} else if (Number(value) < 0 && value != 0) {
callback(new Error("大于0"));
} else {
if (reg.test(value)) {
callback();
} else {
callback(new Error("请输入数字,最多保留两位小数"));
}
}
};
纯数字—16位
var a1= (rule, value, callback) => {
const reg = /^\d{16}$/;
if (!value) {
callback(new Error("请输入**"));
} else if (!Number(value)) {
callback(new Error("请输入数字"));
} else {
if (reg.test(value)) {
callback();
} else {
callback(new Error("请输入16位数字"));
}
}
};
数字 — 大于10以上的数字
var a1= (rule, value, callback) => {
const reg = /^[1-9]\d*|0$/;
if (!value) {
callback(new Error("请输入*****"));
} else if (Number(value) < 10) {
callback(new Error("最少10元"));
} else {
if (reg.test(value)) {
callback();
} else {
callback(new Error("请输入整数"));
}
}
};
禁止输入特殊字符
var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im;
var regCn = /[·!#¥(——):;“”‘、,|《。》?、【】[\]]/im;
if (regEn.test(value) || regCn.test(value)) {
return callback(new Error('不能包含特殊字符'))
} else {
callback()
}