天天看點

自定義 jquery.validate.js 校驗方法

部落格參考:http://blog.csdn.net/yangxiaovip/article/details/21550145 

jquery.validate.js 是一個前端 form 表單校驗插件,具體詳情可以百度一下。

jquery.validate.js 不僅自身内置有封裝一些常用的前端校驗,還提供便捷的 自定義校驗方法 進行拓展。

前端内置自帶校驗:

required:true               必填字段

remote:"check.php"           使用ajax方法調用check.php驗證輸入值

email:true                   輸入内容必須為正确格式的電子郵件

url:true                     輸入内容必須為正确格式的網址

date:true                   輸入内容必須為正确格式的日期

隻驗證格式,不驗證有效性

number:true                 輸入内容必須為合法的數字(負數,小數)

digits:true                 輸入内容必須為整數

creditcard:                 輸入内容必須為合法的信用卡号

equalTo:"#field"           輸入值必須和#field相同

accept: "gif|png|jpg" 輸入擁有合法字尾名的字元串(上傳檔案的字尾),多個字尾之間用’|’隔開

maxlength:5                 輸入長度最多是5的字元串(漢字算一個字元)

minlength:10               輸入長度最小是10的字元串(漢字算一個字元)

rangelength:[5,10]         輸入長度必須介于 5 和 10 之間的字元串")(漢字算一個字元)

range:[5,10]               輸入值必須介于 5 和 10 之間

max:5                       輸入值不能大于5

min:10                     輸入值不能小于10

自定義校驗方法:

//普通 正則驗校驗例子   :隻允許輸入中文或字母

$.validator.addMethod("chineseAndLetter", function(value, element) {
		var score = /^[a-zA-Z\u4e00-\u9fa5]+$/;
		return this.optional(element) || (score.test(value));
	}, "請輸入中文或字母");
           

// 根據腳本調用驗證方法時設定參數進行輔助校驗 例子:校驗輸入内容的長度(中文算兩個位元組)    單個參數

jQuery.validator.addMethod("byteLength", function(value, element,param) {
		var length ="";
		var regu = "^[a-zA-Z\u4e00-\u9fa5]+$";
		var re = new RegExp(regu);
		if (value.search(re) != -1) {
			length = value.replace(/[\u0391-\uFFE5]/g, "aa").length;
		}
		return this.optional(element)|| (length >= param);     //parm:js中調用該方法時傳入的參數,例如:byteLength:4  
            
}, $.validator.format("請至少輸入 {0} 個位元組内容(一個中文算2個位元組)"));
           
//前端腳本傳入多個參數 jQuery.validator.addMethod("byteRangeLength", function (value, element, param) {             var length = value.length;             for (var i = 0; i < value.length; i++) {                 if (value.charCodeAt(i) > 127) {                     length++;                 }             }             return this.optional(element) || (length >= param[0] && length <= param[1]);   //前端腳本傳入多個參數,param[0] 取第一個傳入的參數; //parm[1] 取傳入的第二個參數 //前端腳本調用改方法:byteRangeLength: [2,10]         }, $.validator.format("請確定輸入的值在{0}-{1}個位元組之間(一個中文字算2個位元組)"));