jquery validate自定義表單驗證

2021-10-01 07:45:20 字數 3901 閱讀 2967

自定義方法中有三個引數:

第乙個是規則的名字,類似required規則名字。

第二個是改規則的實現部分,需要驗證哪些條件在這裡寫驗證方法,當return返回true時代表驗證條件符合不觸發。

第三個是提示訊息。

其中this.optional(element)表示表單控制項的值不為空時才會觸發。空字串也會觸發。`

部分自定義驗證

// 手機號碼驗證

jquery.validator.addmethod("mobile", function(value, element) )|(15[0-9]))+\d)$/

return this.optional(element) || (length == 11 && mobile.test(value));

}, "手機號碼格式錯誤");

// **號碼驗證

jquery.validator.addmethod("phone", function(value, element) \-)?([2-9][0-9])+(\-[0-9])?$/;

return this.optional(element) || (tel.test(value));

}, "**號碼格式錯誤");

jquery.validator.addmethod("zipcode", function(value, element) $/;

return this.optional(element) || (tel.test(value));

// qq號碼驗證

jquery.validator.addmethod("qq", function(value, element) $/;

return this.optional(element) || (tel.test(value));

}, "qq號碼格式錯誤");

// ip位址驗證

jquery.validator.addmethod("ip", function(value, element) (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/; return this.optional(element) || (ip.test(value) && (regexp./; return this.optional(element) || (ip.test(value) && (regexp.1 < 256 && regexp.2 < 256 && regexp.2 < 256 && regexp.3 < 256 && regexp.$4 < 256));

}, "ip位址格式錯誤");

// 字母和數字的驗證

jquery.validator.addmethod("chrnum", function(value, element) , "只能輸入數字和字母(字元a-z, a-z, 0-9)");

// 中文的驗證

jquery.validator.addmethod("chinese", function(value, element) , "只能輸入中文");

// 下拉框驗證

$.validator.addmethod("selectnone", function(value, element) , "必須選擇一項");

// 位元組長度驗證

jquery.validator.addmethod("byterangelength", function(value, element, param)

}return this.optional(element) || (length >= param[0] && length <= param[1]);

}, $.validator.format("請確保輸入的值在-個位元組之間(乙個中文字算2個位元組)"));

身份證號碼自定義驗證

我們中國的居民身份證都是由十八位組成的,其中包括十七位數字本體碼和一位數字校驗碼組成。

第一、二位省、自治區、直轄市**;

第三、四位地級市、盟、自治州**;

第五、六位縣、縣級市、區**;

第七、十四位出生年月日,比如19820426代表2023年4月26日;

第十五、十六位為順序號,其中17位(倒數第二位)男為單數,女為雙數;

十八位為校驗碼,0-9和x。作為尾號的校驗碼,是由把前十七位數字帶入統一的公式計算出來的,計算的結果是0-10,如果某人的尾號是0-9,都不會出現x,但如果尾號是10,那麼就得用x來代替,因為如果用10做尾號,那麼此人的身份證就變成了19位。x是羅馬數字的10,用x來代替10。

舉例:330226 19820426 0012這個身份證號的含義: 33為浙江,02為寧波,26為寧海縣,出生日期為2023年4月26日,順序號為001,2為校驗碼。

15位身份證號碼

第1~2位數字:所在省(直轄市、自治區)的**;

第3~4位:所在地級市(自治州)的**;

第5~6位:所在區(縣,自治縣,縣級市)的**;

第7~12位:出生的年月日;15位的年份是簡寫的。比如:18位的年份是2023年,而15位的就是70年。

第13~14位:所在地派出所的**;

第15位:表示性別的**,男性為奇數,女性為偶數;

15位身份證沒有校驗位。

// 身份證號碼驗證

jquery.validator.

addmethod

("idcard"

,function

(value, element)

((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d$|^[1-9]\d[1-9]\d((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d([0-9]|x)$/;

//var idcardreg = /(^\d$)|(^\d$)|(^\d(\d|x|x)$)/;

var idcardreg =

/^(^[1-9]\d((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d$)|(^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d((19\d(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(19\d(0[13578]|1[02])31)|(19\d02(0[1-9]|1\d|2[0-8]))|(19([13579][26]|[2468][048]|0[48])0229))((\d)|\d[xx])$)$/

;return

this

.optional

(element)

||(length ==

18&& idcardreg.

test

(value));

},"身份證號碼格式錯誤"

);

擴充套件資料:

正規表示式的書寫語法

1、^ 表示匹配字串的開始位置 (例外 用在中括號中[ ] 時,可以理解為取反,表示不匹配括號中字串)

2、$ 表示匹配字串的結束位置

3、* 表示匹配 零次到多次

4、+ 表示匹配 一次到多次 (至少有一次)

5、? 表示匹配零次或一次

6、. 表示匹配單個字元

7、| 表示為或者,兩項中取一項

8、( ) 小括號表示匹配括號中全部字元

9、[ ] 中括號表示匹配括號中乙個字元 範圍描述 如[0-9 a-z a-z]

10、 大括號用於限定匹配次數 如 表示匹配n個字元 表示至少匹配n個字元 表示至少n,最多m

11、\ 轉義字元 如上基本符號匹配都需要轉義字元 如 \* 表示匹配*號

12、\w 表示英文本母和數字 \w 非字母和數字

13、\d 表示數字 \d 非數字

jquery validate 校驗心得

1.rule 裡面的設定的各個項是以name 做為關鍵字,莫以id做為唯一值。謹記 2.jquery.validator.format 的使用列子 button click function this is alert str str jquery.validator.format str,worl...

jQuery Validate外掛程式使用

這幾天一直在接觸驗證方面的工作,jquery validate是乙個比較常用的驗證外掛程式,說一下心得吧。效果圖類似 說乙個簡單的,現在需求是模板編號只能是正整數數字。控制項 如下 模板編號 接下來就是使用jquery了,第一步肯定是匯入js庫了,這個不用說,第二步開始寫js 解釋一下吧,首先jqu...

jQuery Validate 觸發機制

lang en charset utf 8 titletitle src jquery 1.11.2.js script src jquery.validate.min.js script document ready function 15 0 9 18 0 9 d test value 請正確填...