/**
* @content for 表单验证
* @author by ly
* @date by 2016-06-30
* @version 1.0.0
*/
/**
* 参数说明:
* @param {Object} conObj 配置参数
* 验证规则:isEmpty 非空验证 isIp 验证Ip地址 isA 验证密码 isChinese 验证中文字符 isDateTime 验证日期格式YYYY-MM-DD isZip 验证邮编
*/
function Vstors(conObj){
//验证错误信息
this.messages = {}
//获取配置信息
this.config = {};
for(var i in conObj){
this.config[i] = conObj[i];
};
}
Vstors.prototype = {
validate: function(data){
var type, checker, result_ok;
this.messages = {};
for (var i in data) {
if (data.hasOwnProperty(i)) {
type = this.config[i]; // 根据key查询是否有存在的验证规则
checker = this.types[type]; // 获取验证规则的验证类型
if (!type) {
continue; // 如果验证规则不存在,则不处理
}
if (!checker) { // 如果验证规则类不存在,抛出异常
throw "不存在此规则:" + type +",请首先添加规则。";
}
result_ok = checker.validate(data[i]); // 使用查到到的单个验证类进行验证
if (!result_ok) {
this.messages[i] = checker.instructions;
}
}
}
return this.hasErrors();
},
hasErrors: function() {
return !this.isNullObj(this.messages);
},
isNullObj: function(obj) {
for(var keys in obj){
if(obj.hasOwnProperty(keys)){
return false;
break;
}
}
return true;
},
types: {
isEmpty : { //非空判断
validate: function(value) {
return value.trim().length != "0";
},
instructions: "必填项,不能为空"
},
isDateTime : { //判断日期格式是否为YYYY-MM-DD或者YYYY/MM/DD或者YYYYMMDD或者YYYY.MM.DD
validate: function(value) {
return /^[1-9]\d{3}([-|\/|\.])?((0\d)|([1-9])|(1[0-2]))\1(([0|1|2]\d)|([1-9])|3[0-1])$/.test(value);
},
instructions: "日期格式不正确"
},
isChinese : { //判断是否为中文
validate: function(value) {
return /^[\u0391-\uFFE5]+$/.test(value.trim());
},
instructions: "请输入中文"
},
isEmail : { //判断邮箱地址是否正确
validate: function(value) {
return /^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+(\.[a-zA-Z]{2,3})+$/.test(value.trim());
},
instructions: "请输入正确的邮箱地址"
},
isZip : { //判断邮编是否正确
validate: function(value) {
return /^[1-9]\d{5}(?!\d)$/.test(value.trim());
},
instructions: "请输入正确的邮编"
},
isIp : { //是否为IP
validate: function(value) {
return /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/.test(value.trim());
},
instructions: "请输入正确的IP地址"
},
isA : { //是否以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
validate: function(value) {
return /^[a-zA-Z]\w{5,17}$/.test(value);
},
instructions: "密码格式为以字母开头,长度在6-18之间,只能包含字符、数字和下划线"
},
isUrl : { //判断是否是网址
validate: function(value) {
return /^(([hH][tT]{2}[pP][sS]?)|([fF][tT][pP]))\:\/\/[wW]{3}\.[\w-]+\.\w{2,4}(\/.*)?$/.test(value.trim());
},
instructions: "请确认输入正确的网址"
},
isQQ : { //匹配qq号码
validate: function(value) {
return /^[1-9][0-9]{4,}$/.test(value.trim());
},
instructions: "请确认输入正确QQ号码"
},
isCZN : { //判断国内固话号码
validate: function(value) {
return /^(^0\d{2}-?\d{8}$)|(^0\d{3}-?\d{7}$)|(^0\d{2}-?\d{8}$)|(^0\d{3}-?\d{7}$)$/.test(value.trim());
},
instructions: "请确认输入国内固定电话号码"
},
isCard : { //判断身份证号码
validate: function(value) {
return /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/.test(value.trim());
},
instructions: "请输入正确的身份证号码"
},
isUserName : { //判断用户名里不允许有符号 最少6位 最多16位 用户名允许有字母、中文、数字
validate: function(value) {
return /(^[A-Za-z0-9]{6,16}$)|(^[\u4E00-\u9FA5]{2,8}$)/.test(value.trim());
},
instructions: "用户名不能使用特殊符号"
}
}
}
/**
* 调用示例:
* var vsdata = {user : getId('user').value , nich : getId("nich").value , paw : getId("paw").value};
* var vstor = new Vstors({ user : "isUserName", nich : "isCard", paw : "isA"});
* var foo = vstor.validate(vsdata);
*/
正则验证规则,最全,最实用
需积分: 50 42 浏览量
2016-07-27
12:06:27
上传
评论
收藏 2KB RAR 举报
薪往之
- 粉丝: 8
- 资源: 17
最新资源
- 基于Matlab人脸肤色定理的教师人数统计+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab霍夫曼变换的表盘读数识别+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab火灾烟雾检测源码带GUI界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的恶劣天气交通标志识别系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB的霍夫曼变换的表盘示数识别+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的车道线识别系统 +源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB的教室人数统计系统带Gui界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB的教室人数统计系统带Gui界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB 的霍夫曼变换答题卡识别源码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab+bp神经网络的神经网络汉字识别系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈