- 全网最全正则表达式
经过多年积累,成功总结我们项目开发常用的正则校验大全,再也不用去百度搜索了
export default {
/*大于0小于100数字*/
validateNumber: function validateNumber(val) {
const reg = /^\d\.([1-9]{1,2}|[0-9][1-9])$|^[1-9]\d{0,1}(\.\d{1,2}){0,1}$|^100(\.0{1,2}){0,1}$/;
return reg.test(val);
},
validdateMobile: function validdateMobile(val) {
const length = val.length;
var mobile = /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/;
return length == 11 && mobile.test(val);
},
validPassword: function validPassword(val) {
//const reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,21}$/;
const reg = /(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_]).{8,15}$/;
return reg.test(val);
},
//# 字符串匹配
//是否为 数字!整数,浮点数
isNum: function (num) {
//# 是否为数组
return !isNaN(num);
},
isEmail: function (mail) {
//# 是否为 邮箱
return /^([a-z0-9]+[_\-\.]?)*[a-z0-9]+@([a-z0-9]+[_\-\.]?)*[a-z0-9]+\.[a-z]{2,5}$/i.test(
mail
);
},
isIdCard: function (card) {
//# 是否为 身份证
return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(card);
},
isMobile: function (mobile) {
//# 是否为 手机
return /^0*1\d{10}$/.test(mobile);
},
isQQ: function (qq) {
//# 是否为 QQ
return /^[1-9]\d{4,10}$/.test(qq);
},
isTel: function (tel) {
//# 是否为 电话
return /^\d{3,4}-\d{7,8}(-\d{1,6})?$/.text(tel);
},
isUrl: function (url) {
//# 是否为 URL
return /https?:\/\/[a-z0-9\.\-]{1,255}\.[0-9a-z\-]{1,255}/i.test(url);
},
isColor: function (color) {
//# 是否为 16进制颜色
return /#([\da-f]{3}){1,2}$/i.test(color);
},
//@id : 身份证 ,
// @now : 当前时间 如:new Date('2013/12/12') , '2013/12/12'
// @age : 允许的年龄
isAdult: function (id, allowAge, now) {
//# 是否年龄是否成年
var age = 0, // 用户 年月日
nowDate = 0; //当前年月日
allowAge = parseFloat(allowAge) || 18;
now = typeof now == "string" ? new Date(now) : now || new Date();
if (!this.isIdCard(id)) {
return false;
}
//15位身份证
if (15 == id.length) {
age = "19" + id.slice(6, 6);
} else {
age = id.slice(6, 14);
}
// 类型转换 整型
age = ~~age;
nowDate = ~~Tydic.date.format("YYYYMMDD", now);
//比较年龄
if (nowDate - age < allowAge * 1e4) {
return false;
}
return true;
},
//浮点数
isFloat: function (num, place) {
//# 是否为 浮点数
let str = "^(([1-9]\\d*)|(\\d+\\.\\d+)|0)$";
if (place) str = "^(([1-9]\\d*)|(\\d+\\.\\d{0," + place + "}))$";
let reg = new RegExp(str);
return reg.test(num);
},
//正整数
isInt: function (num) {
//# 是否为 正整数
return /^[1-9]\d*$/.test(num);
},
//是否全为汉字
isChinese: function (str) {
//# 是否全为 汉字
return /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])+$/gi.test(str);
},
};
/*大于0小于100数字*/
export function validateNumber(val) {
const reg = /^\d\.([1-9]{1,2}|[0-9][1-9])$|^[1-9]\d{0,1}(\.\d{1,2}){0,1}$|^100(\.0{1,2}){0,1}$/;
return reg.test(val);
}
export function validPassword(val) {
const reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,21}$/;
return reg.test(val);
}
//过滤特殊字符
export function filterSpecial(val) {
const reg = /[\`~\!\@\#\$%\^\&\*\(\)\+<>\?:"\{\},\.\\\/;'\[\]]/;
return reg.test(val);
}
//联系方式
export function validContact(val) {
var reg = /(^[0-9]{3,20}$)/;
return reg.test(val);
}
// export function validContact(val){
// var reg =/(^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$)|(^((\(\d{3}\))|(\d{3}\-))?(1[358]\d{9})$)/;
// return reg.test(val);
// }
//身份证
export function card(val) {
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return reg.test(val);
}
//验证数字包括浮点数
export function validNumber(val) {
var reg = /^[0-9]+\.?[0-9]*$/;
return reg.test(val);
}
//金额验证,保留两位小数
export function validMoney(val) {
var reg = /^([1-9]\d{0,8}|0)(\.\d{1,2})?$/;
return reg.test(val);
}
//验证合法的姓名
export function validName(val) {
var reg = /^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$/;
return reg.test(val);
}
//校验检查人员姓名用逗号隔开
export function validateMultipleName(val) {
var reg = /^(\w|[\u4e00-\u9fa5])+(,(\w|[\u4e00-\u9fa5])+)*$/;
return reg.test(val);
}
//校验统一社会信用代码
export function validateSocialCreditCode(val) {
var reg = /[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}/g;
return reg.test(val);
}
//校验身份证号
export function validateIdCard(val) {
var reg = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/;
return reg.test(val);
}
/*
form 表单验证
*/
//验证手机号
export function validdateMobile(rule, value, callback) {
if (!/^1[3|4|5|7|8][0-9]{9}$/.test(value)) {
callback(new Error("请输入正确格式"));
} else {
callback()
}
}
// 表单验证 整数 或者小数 (后两位小数)
export function valiFloatNumber(rule, value, callback) {
if (value === "") {
callback(new Error("不能为空"));
} else if (!/^([1-9]\d{0,8}|0)(\.\d{1,2})?$/.test(value)) {
callback(new Error("请输入正确格式"));
} else {
callback();
}
}
// 可以为空 小数数字
export function valiEmptyFloatNumber(rule, value, callback) {
if (value && !/^([1-9]\d{0,8}|0)(\.\d{1,2})?$/.test(value)) {
callback(new Error("请输入正确格式"));
} else {
callback();
}
}
// 验证正整数
export function valiNumber(rule, value, callback) {
if (value === "") {
callback(new Error("不能为空"));
} else if (!/^[1-9]\d*$/.test(value)) {
callback(new Error("请输入正确格式"));
} else {
callback();
}
}
// 验证 小数两位数 可以为空
export function valiFloatNumberAndEmpty(rule, value, callback) {
if (value != "" && !/^([1-9]\d{0,8}|0)(\.\d{1,2})?$/.test(value)) {
callback(new Error("请输入正确格式"));
} else {
callback();
}
}
export function returnStringNumber(str) {
if (/^([1-9]\d{0,8}|0)(\.\d{1,4})?$/.test(str)) {
return parseFloat(str);
} else {
return 0;
}
}
export function returnStringIntNumber(str) {
if (/^[1-9]\d*$/.test(str)) {
return parseInt(str);
} else {
return 0;
}
}
注:有待优化的请留言指出
有好的方案也请各位多多指出,感谢感谢!