jquery.validate.extend.js
3.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//定义Jquery全局函数(验证需要使用)
jQuery.getByteStrLength = function(str) {
var cArr = str.match(/[^\x00-\xff]/ig);
return str.length + (cArr === null ? 0 : cArr.length);
};
//定义中文消息
var cnmsg = {
required: "必需填写项",
remote: "请修正该字段",
email: "请输入正确格式的电子邮件",
url: "网址不合法",
date: "日期不合法",
dateISO: "请输入合法的日期 (ISO).",
number: "只能为数字",
digits: "只能输入整数",
creditcard: "请输入合法的信用卡号",
equalTo: "请再次输入相同的值",
accept: "请输入拥有合法后缀名的字符串",
maxlength: jQuery.validator.format("请输入一个长度最多是 {0} 的字符串"),
minlength: jQuery.validator.format("请输入一个长度最少是 {0} 的字符串"),
rangelength: jQuery.validator.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
range: jQuery.validator.format("有效值介于 {0} 到 {1}"),
max: jQuery.validator.format("请输入一个最大为 {0} 的值"),
min: jQuery.validator.format("请输入一个最小为 {0} 的值"),
//自定义验证方法的提示信息
stringCheck: "用户名只能包括中文字、英文字母、数字和下划线",
byteRangeLength: "用户名必须在4-15个字符之间(一个中文字算2个字符)",
isIdCardNo: "请正确输入您的身份证号码"
};
jQuery.extend(jQuery.validator.messages, cnmsg);
//添加Ip规则
jQuery.validator.addMethod("ip", function(value, element) {
var ipRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$/;
return this.optional(element) || ipRegex.test(value);
}, "Ip地址不正确,前后不能有空格");
//添加mac地址规则
jQuery.validator.addMethod("mac", function(value, element) {
var ipRegex = /^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/;
if ("00:00:00:00:00:00" === $.trim(value).toUpperCase() || "FF:FF:FF:FF:FF:FF" === $.trim(value).toUpperCase()) {
return false;
}
if (parseInt(value.substring(1, 2), 16) % 2 !== 0) { //如果第二位数字不为偶数,则返回错误
return false;
}
return this.optional(element) || ipRegex.test(value);
}, "mac地址格式应为 xx:xx:xx:xx:xx:xx,其中xx范围00-FF,但不能全为0或全为F,且第二位数字必须是偶数");
//添加数字框中-0格式验证
jQuery.validator.addMethod("validMinusZero", function(value, element) {
var reg = /^-+0+$/;
return !reg.test(value);
}, "不能输入类似-0的值");
//ge 大于或者等于指定ID的控件的值,必须是数字
jQuery.validator.addMethod("ge", function(value, element, param) {
var targetElement = $(param[0]);
return this.optional(element) || (targetElement.length > 0 && parseInt(value) >= parseInt(targetElement.val()));
}, jQuery.validator.format("值必须大于 '{1}' "));
jQuery.validator.addMethod("maxByteLength", function(value, element, maxLength) {
var characterLength = jQuery.getByteStrLength(value);
return this.optional(element) || characterLength <= maxLength;
}, "最多输入{0}个字符!(一个中文算2个字符)");
jQuery.validator.addMethod("username", function(value, element) {
var ipRegex = /^[a-zA-Z][a-zA-Z0-9_]{2,15}$/i;
return this.optional(element) || ipRegex.test(value);
}, "用户名不合法(字母开头,允许字母数字下划线,3-16个字符)");
// 添加一个正则表达式验证规则
jQuery.validator.addMethod("regex",
function(value, element, param) {
if (param instanceof RegExp) {
return this.optional(element) || param.test(element.value);
}
console.warn("jquery validate 验证方法:'regex',参数: %s 不是合法正则表达式!", param);
return false;
},
jQuery.validator.format("格式不合法!"));