當前位置:軟件學堂 > 資訊首頁 > 網(wǎng)絡編程 > 編程其他 > 通過JS對身份證號驗證

通過JS對身份證號驗證

2012/11/9 11:30:41作者:佚名來源:網(wǎng)絡

移動端

【實例名稱】

通過JS對身份證號驗證

【實例描述】

驗證身份證號的主要條件是號碼必須全部由數(shù)字組成且長度為15或18位。為了保證身份證號的正確性,還需要判斷其中的年份和日期是否正確。本例通過一個正則表達式實現(xiàn)對身份證號的驗證。

【實例代碼】

<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>標題頁-學無憂(wangbatian.cn)</title> <SCRIPT LANGUAGE="JavaScript">  function isCardNo(num) { if (isNaN(num)) {alert("輸入的不全是數(shù)字!"); return false;} var len = num.length, re; if (len == 15) //15位身份證的判斷 re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/); else if (len == 18)//18位身份證的判斷 re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/); else {alert("輸入的數(shù)字位數(shù)不對!"); return false;} var a = num.match(re);//判斷是否有符合條件的表達式 if (a != null) { if (len==15) {//對15位身份證中日期的判斷 var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]); var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; } else {//對18位身份證中日期的判斷 var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; } if (!B) {alert("輸入的身份證號 "+ a[0] +" 里出生日期不對!"); return false;} } return true; } </script> </head> <body> <input type=text name="txt1" value="1110120780423003"> <input type=button value="判斷身份證號" onClick="javascript:alert(isCardNo(txt1.value))"> </body> </html>

【運行效果】

 身份證號的驗證運行效果

【難點剖析】

本例的重點是驗證身份證號的條件。長度必須滿足15或18位。在滿足長度的條件后,再判斷出生年月日是否符合日期規(guī)范?!癿atch”方法判斷是否能找到符合條件的匹配,沒有匹配則返回“null”。

【源碼下載】

為了JS代碼的準確性,請點擊:通過JS對身份證號驗證 進行本實例源碼下載 

標簽: 身份證號  驗證