日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js实现身份证验证功能

發(fā)布時(shí)間:2023/12/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js实现身份证验证功能 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

html代碼

<!DOCTYPE html> <html><head><meta charset="utf-8"><title></title></head><body>身份證號:<input type="text"> <script src="../js/citys.js"></script><script>var _input=document.querySelector("input");_input.onblur=function(){var num= this.value;var flag=checkId(num);if(!flag){alert("身份信息有誤");}}/*18位: 41072419980815451x410724 1998 0815 451x41:省編碼前2位4107:市編碼前4位410724:縣編碼45:派出所編碼1:奇數(shù)為男,偶數(shù)為女x:計(jì)算所得1、將前面的身份證號碼17位數(shù)分別乘以不同的系數(shù)。從第一位到第十七位的系數(shù)分別為:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2;2、將這17位數(shù)字和系數(shù)相乘的結(jié)果相加;3、用加出來和除以11,看余數(shù)是多少;4、余數(shù)只可能有0、1、2、3、4、5、6、7、8、9、10這11個(gè)數(shù)字,其分別對應(yīng)的最后一位身份證的號碼為1、0、X、9、8、7、6、5、4、3、2。*///長度要合格function checkId(ID){if(ID.length>18){return false;}//先獲取各省編碼前兩位var shenCode=ID.substr(0,2);//從頭開始截取,截取兩位//從函數(shù)中獲取對應(yīng)省的數(shù)組var shens = citys.districts[0].districts;console.log(shens);//從獲得的數(shù)組中找到對應(yīng)省var shen=shens.find(function(obj){//找到數(shù)組中的省編碼,并檢查是否符合截取return obj.adcode.startsWith(shenCode);})//省沒有在編碼中找到if (shen == undefined) {return false;}//獲取身份證前4位 市編碼前兩位var cityCode = ID.substr(0, 4);//獲取市的數(shù)組var cs = shen.districts;console.log(cs);//獲取到的是對應(yīng)的市var city = cs.find(function(obj) {return obj.adcode.startsWith(cityCode);})if (city == undefined) {return false;}//獲取身份證前6位 省編碼前兩位var countyCode = ID.substr(0, 6);//獲取縣的數(shù)組var countys = city.districts;//對應(yīng)的縣var county = countys.find(function(obj) {return obj.adcode==countyCode;})if (county == undefined) {return false;}//驗(yàn)證最后一位// 1、將前面的身份證號碼17位數(shù)分別乘以不同的系數(shù)。// 從第一位到第十七位的系數(shù)分別為:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2;var nums=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];// 2、將這17位數(shù)字和系數(shù)相乘的結(jié)果相加;var res=nums.reduce(function(res,item,index){//ID的每一項(xiàng)(通過charAt下表找到對應(yīng)字符串)分別*nums的每一項(xiàng)res+=ID.charAt(index)*item;return res;},0)// 3、用加出來和除以11,看余數(shù)是多少;var mod=res%11;// 4、余數(shù)只可能有0、1、2、3、4、5、6、7、8、9、10這11個(gè)數(shù)字,// 其分別對應(yīng)的最后一位身份證的號碼為1、0、X、9、8、7、6、5、4、3、2。var endNums=[1,0,"x",9,8,7,6,5,4,3,2];//substring截取17位以后的數(shù)字看是否符合數(shù)組endNumsif(ID.substring(17)!=endNums[mod]){return false;}return true;}</script></body> </html>

總結(jié)

以上是生活随笔為你收集整理的js实现身份证验证功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。