前端身份证号码校验js代码
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                前端身份证号码校验js代码
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                今天把項(xiàng)目前端的身份證號(hào)碼從最初的只是校驗(yàn)長度改為只允許正規(guī)的號(hào)碼,具體內(nèi)容如下
功能主要校驗(yàn) ?年月日 地址 ?格式 ?以及最后一位的校驗(yàn)
 
var code="123132132121" var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"內(nèi)蒙古",21:"遼寧",22:"吉林",23:"黑龍江 ",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北 ",43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"云南",54:"西藏 ",61:"陜西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺(tái)灣",81:"香港",82:"澳門",91:"國外 "};var tip = "";var pass= true;var year = code.substr(6,4); var mounth = code.substr(10,2);var day = code.substr(12,2);if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)){tip = "身份證號(hào)格式錯(cuò)誤";pass = false;}else if(!city[UUserCard.substr(0,2)]){tip = "地址編碼錯(cuò)誤";pass = false;}if(((year%400==0)||year%100!=0)&&year%4==0){if(mounth=='02'){if(day*1>29){pass = false; }}}else{if(mounth=='02'){if(day*1>28){pass = false;}}} //18位身份證需要驗(yàn)證最后一位校驗(yàn)位if(UUserCard.length == 18){code = UUserCard.split('');//∑(ai×Wi)(mod 11)//加權(quán)因子var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];//校驗(yàn)位var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];var sum = 0;var ai = 0;var wi = 0;for (var i = 0; i < 17; i++){ai = code[i];wi = factor[i];sum += ai * wi;}var last = parity[sum % 11];if(parity[sum % 11] != code[17]){tip = "校驗(yàn)位錯(cuò)誤";pass =false;}}if(!pass){//校驗(yàn)失敗 填寫你要做的內(nèi)容}; 以上為主要代碼,具體還要看你用什么方式實(shí)現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的前端身份证号码校验js代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 小红伞下载
 - 下一篇: python打包exe反编译源码_pyt