JS正则表单验证
1、js代码
/**
* 表单验证
*/
var regExp = {};
/**
* 内置正则表达式
*/
regExp.regex = {
'zip' : /^[0-9]{6}$/, //验证值是否为有效的邮政编码
'alphaDash' : /^[A-Za-z0-9\\-\\_]+$/, //验证值是否为字母和数字,下划线_及破折号-
'chs' : /^[\u4E00-\u9FA5]+$/u, //验证值只能是汉字
'chsAlpha' : /^[\u4E00-\u9FA5a-zA-Z]+$/u, //验证值只能是汉字、字母
'chsAlphaNum' : /^[\u4E00-\u9FA5a-zA-Z0-9]+$/u, //验证值只能是汉字、字母和数字
'chsDash' : /^[\u4E00-\u9FA5a-zA-Z0-9\\_\\-]+$/u, //验证值只能是汉字、字母、数字和下划线_及破折号-
'telOrMobile' : /^((0\d{2,3}-\d{7,8})|(1[3456789]\d{9}))$/, //验证座机或手机号
'name' : /^([\u4E00-\u9FA5]{1,20}|[a-zA-Z.s]{1,20})$/, //验证姓名
'idCard' : /(^[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{2}$)/, //验证值是否为有效的身份证格式
}
/**
* 默认规则提示
*/
regExp.typeMsg = {
'zip' : '无效的邮政编码格式',
'alphaDash' : ':只能是字母和数字,下划线_及破折号-',
'chs' : ':只能是汉字',
'chsAlpha' : ':只能是汉字、字母',
'chsAlphaNum' : ':只能是汉字、字母和数字',
'chsDash' : ':只能是汉字、字母、数字和下划线_及破折号-',
'telOrMobile' : ':只能是数字、破折号-',
'name' : ':无效的姓名格式',
'idCard' : ':无效的身份证格式',
};
/**
* 过滤器
* @param name 验证字段名
* @param str 验证值
* @param type 内置正则类型
* @returns {{msg: *, bool: *}}
*/
regExp.filter = function (name, str, type) {
if(regExp.regex[type].test(str)){
return regExp.msg(true, 'ok');
}else{
return regExp.msg(false, name+regExp.typeMsg[type]);
}
}
/**
* 公共提示消息
* @param bool
* @param msg 信息
* @returns {{msg: *, bool: *}}
*/
regExp.msg = function (bool, msg) {
return {'bool':bool, 'msg':msg};
}
2、调用
let info = regExp.filter('联系方式', '15012345678', 'telOrMobile');
console.log(info); //{bool: true, msg: "ok"}