jquery validate.addMethod 正則表示式 (自定義驗證方法)
專案中使用的jQuery新增的校驗的方法
$(document).ready(function(){
5
6/* 設定預設屬性 */
7$.validator.setDefaults({
8 submitHandler: function(form) {
9 form.submit();
10 }
11});
12
13// 字元驗證 14jQuery.validator.addMethod("stringCheck", function(value, element) {
15
16}, "只能包括中文字、英文字母、數字和下劃線");
17
18// 中文字兩個位元組 19jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {
20 var length = value.length;
21 for(var i = 0; i < value.length; i++){
22
23 length++;
24 }
25 }
26 return this.optional(element) || ( length >= param[0] && length <= param[1] );
27}, "請確保輸入的值在3-15個位元組之間(一箇中文字算2個位元組)");
28
29// 身份證號碼驗證 30jQuery.validator.addMethod("isIdCardNo", function
31 return this.optional(element) || isIdCardNo(value);
32}, "請正確輸入您的身份證號碼");
33
34// 手機號碼驗證 35jQuery.validator.addMethod("isMobile", function(value, element) {
36 var length = value.length;
37 var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
38 return this.optional(element) || (length == 11 && mobile.test(value));
39}, "請正確填寫您的手機號碼");
40
41// 電話號碼驗證 42jQuery.validator.addMethod("isTel", function(value, element) {
43 var tel = /^\d{3,4}-?\d{7,9}$/; //電話號碼格式010-12345678 44 return this.optional(element) || (tel.test(value));
45}, "請正確填寫您的電話號碼");
46
47// 聯絡電話(手機/電話皆可)驗證 48jQuery.validator.addMethod("isPhone", function(value,element) {
49 var length = value.length;
50 var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
51 var tel = /^\d{3,4}-?\d{7,9}$/;
52 return this.optional(element) || (tel.test(value) || mobile.test(value));
53
54}, "請正確填寫您的聯絡電話");
55
56// 郵政編碼驗證 57jQuery.validator.addMethod("isZipCode", function(value, element) {
58 var tel = /^[0-9]{6}$/;
59 return this.optional(element) || (tel.test(value));
60}, "請正確填寫您的郵政編碼");
61
62//開始驗證 63$('#submitForm').validate({
64 /* 設定驗證規則 */
65 rules: {
66 username: {
67 required:true,
68 stringCheck:true,
69 byteRangeLength:[3,15]
70 },
71 email:{
72 required:true,
73 email:true
74 },
75 phone:{
76 required:true,
77 isPhone:true
78 },
79 address:{
80 required:true,
81 stringCheck:true,
82 byteRangeLength:[3,100]
83 }
84 },
85
86 /* 設定錯誤資訊 */
87 messages: {
88 username: {
89 required: "請填寫使用者名稱",
90 stringCheck: "使用者名稱只能包括中文字、英文字母、數字和下劃線",
91 byteRangeLength: "使用者名稱必須在3-15個字元之間(一箇中文字算2個字元)"
92 },
93 email:{
94 required: "請輸入一個Email地址",
95 email: "請輸入一個有效的Email地址"
96 },
97 phone:{
98 required: "請輸入您的聯絡電話",
99 isPhone: "請輸入一個有效的聯絡電話"
100 },
101 address:{
102 required: "請輸入您的聯絡地址",
103 stringCheck: "請正確輸入您的聯絡地址",
104 byteRangeLength: "請詳實您的聯絡地址以便於我們聯絡您"
105 }
106 },
107
108 /* 設定驗證觸發事件 */
109 focusInvalid: false,
110 onkeyup: false,
111
112 /* 設定錯誤資訊提示DOM */
113 errorPlacement: function(error, element) {
114 error.appendTo( element.parent());
115 },
116
117});
118
119});
supplier-commons-vacation.js
//定義訂單的公共的函式方法
function define_common_method(){
//設定預設的操作
$.validator.setDefaults({
submitHandler: function(form) { form.submit(); }
});
//新增自定義校驗函式
$.validator.addMethod("charNo",function(value,element) {
var length = value.length;
var your_tel =/[\W]/g;
return this.optional(element) || (length<=8&&!your_tel.test(value));
},"請輸入英文字元或數字!");
//新增驗證操作名稱的校驗函式
$.validator.addMethod("charString",function(value,element) {
var length = value.length;
var your_tel =/[^\a-zA-Z\u4E00-\u9FA5]/g;
var your_tel2=/^[A-Za-z]*$/;
return this.optional(element) || (length<=20&&!your_tel.test(value));
},"請輸入中文或英文名稱");
//驗證手機號碼(僅僅13和15開頭)
$.validator.addMethod("isPhone", function(value,element) {
var length = value.length;
var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
var tel = /^\d{3,4}-?\d{7,9}$/;
return this.optional(element) || (tel.test(value) || mobile.test(value));
}, "請正確填寫您的聯絡電話或者手機");
}
supplier-finance.js
jQuery(function($) {
//繫結所有的事件
$(document).ready(function() {
bind_component_event();
});
//繫結的公共的事件
function bind_component_event() {
//定義一些公共的方法
define_common_method();
//環遊供應商付款的驗證(度假)
bind_checkCondition_component_event();
//環遊供應商付款驗證的(供應商)
bind_supplierConditionForm_component_event();
}
//環遊供應商付款(度假)的驗證
function bind_checkCondition_component_event() {
//待收款款訂單驗證
$("#checkConditionForm").validate({
event: "submit",
errorPlacement: function(error, element) {
},
rules:{
"searchCon.accountNo":{
charNo:true
},
"searchCon.supplierName":{
charString:true
}
},
messages:{
"searchCon.accountNo":{
charNo:"請輸入正確的對賬編號!"
},
"searchCon.supplierName":{
charString:"請輸入正確的供應商名稱!"
}
},
//設定驗證觸發事件
focusInvalid:false,
onkeyup:false,
//設定錯誤資訊提示DOM
errorPlacement:function(error,element){
error.appendTo(element.parent());
}
});
}
//環遊供應商付款的驗證(供應商)
function bind_supplierConditionForm_component_event() {
//待收款款訂單驗證
$("#supplierConditionForm").validate({
event: "submit",
errorPlacement: function(error, element) {
},
rules:{
"searchCon.accountNo":{
charNo:true
},
"searchCon.supplierName":{
charString:true
}
},
messages:{
"searchCon.accountNo":{
charNo:"請輸入正確的對賬編號!"
},
"searchCon.supplierName":{
charString:"請輸入正確的供應商名稱!"
}
},
//設定驗證觸發事件
focusInvalid:false,
onkeyup:false,
//設定錯誤資訊提示DOM
errorPlacement:function(error,element){
error.appendTo(element.parent());
}
});
}
});
專案中使用的jQuery新增的校驗的方法
$(document).ready(function(){
5
6/* 設定預設屬性 */
7$.validator.setDefaults({
8 submitHandler: function(form) {
9 form.submit();
10 }
11});
12
13// 字元驗證 14jQuery.validator.addMethod("stringCheck", function(value, element) {
15 return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);
16}, "只能包括中文字、英文字母、數字和下劃線");
17
18// 中文字兩個位元組 19jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {
20 var length = value.length;
21 for(var i = 0; i < value.length; i++){
22 if(value.charCodeAt(i) > 127){
23 length++;
24 }
25 }
26 return this.optional(element) || ( length >= param[0] && length <= param[1] );
27}, "請確保輸入的值在3-15個位元組之間(一箇中文字算2個位元組)");
28
29// 身份證號碼驗證 30jQuery.validator.addMethod("isIdCardNo", function(value, element) {
31 return this.optional(element) || isIdCardNo(value);
32}, "請正確輸入您的身份證號碼");
33
34// 手機號碼驗證 35jQuery.validator.addMethod("isMobile", function(value, element) {
36 var length = value.length;
37 var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
38 return this.optional(element) || (length == 11 && mobile.test(value));
39}, "請正確填寫您的手機號碼");
40
41// 電話號碼驗證 42jQuery.validator.addMethod("isTel", function(value, element) {
43 var tel = /^\d{3,4}-?\d{7,9}$/; //電話號碼格式010-12345678 44 return this.optional(element) || (tel.test(value));
45}, "請正確填寫您的電話號碼");
46
47// 聯絡電話(手機/電話皆可)驗證 48jQuery.validator.addMethod("isPhone", function(value,element) {
49 var length = value.length;
50 var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
51 var tel = /^\d{3,4}-?\d{7,9}$/;
52 return this.optional(element) || (tel.test(value) || mobile.test(value));
53
54}, "請正確填寫您的聯絡電話");
55
56// 郵政編碼驗證 57jQuery.validator.addMethod("isZipCode", function(value, element) {
58 var tel = /^[0-9]{6}$/;
59 return this.optional(element) || (tel.test(value));
60}, "請正確填寫您的郵政編碼");
61
62//開始驗證 63$('#submitForm').validate({
64 /* 設定驗證規則 */
65 rules: {
66 username: {
67 required:true,
68 stringCheck:true,
69 byteRangeLength:[3,15]
70 },
71 email:{
72 required:true,
73 email:true
74 },
75 phone:{
76 required:true,
77 isPhone:true
78 },
79 address:{
80 required:true,
81 stringCheck:true,
82 byteRangeLength:[3,100]
83 }
84 },
85
86 /* 設定錯誤資訊 */
87 messages: {
88 username: {
89 required: "請填寫使用者名稱",
90 stringCheck: "使用者名稱只能包括中文字、英文字母、數字和下劃線",
91 byteRangeLength: "使用者名稱必須在3-15個字元之間(一箇中文字算2個字元)"
92 },
93 email:{
94 required: "請輸入一個Email地址",
95 email: "請輸入一個有效的Email地址"
96 },
97 phone:{
98 required: "請輸入您的聯絡電話",
99 isPhone: "請輸入一個有效的聯絡電話"
100 },
101 address:{
102 required: "請輸入您的聯絡地址",