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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js实现身份证验证功能

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

?

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:奇數為男,偶數為女x:計算所得1、將前面的身份證號碼17位數分別乘以不同的系數。從第一位到第十七位的系數分別為:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2;2、將這17位數字和系數相乘的結果相加;3、用加出來和除以11,看余數是多少;4、余數只可能有0、1、2、3、4、5、6、7、8、9、10這11個數字,其分別對應的最后一位身份證的號碼為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);//從頭開始截取,截取兩位//從函數中獲取對應省的數組var shens = citys.districts[0].districts;console.log(shens);//從獲得的數組中找到對應省var shen=shens.find(function(obj){//找到數組中的省編碼,并檢查是否符合截取return obj.adcode.startsWith(shenCode);})//省沒有在編碼中找到if (shen == undefined) {return false;}//獲取身份證前4位 市編碼前兩位var cityCode = ID.substr(0, 4);//獲取市的數組var cs = shen.districts;console.log(cs);//獲取到的是對應的市var city = cs.find(function(obj) {return obj.adcode.startsWith(cityCode);})if (city == undefined) {return false;}//獲取身份證前6位 省編碼前兩位var countyCode = ID.substr(0, 6);//獲取縣的數組var countys = city.districts;//對應的縣var county = countys.find(function(obj) {return obj.adcode==countyCode;})if (county == undefined) {return false;}//驗證最后一位// 1、將前面的身份證號碼17位數分別乘以不同的系數。// 從第一位到第十七位的系數分別為: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位數字和系數相乘的結果相加;var res=nums.reduce(function(res,item,index){//ID的每一項(通過charAt下表找到對應字符串)分別*nums的每一項res+=ID.charAt(index)*item;return res;},0)// 3、用加出來和除以11,看余數是多少;var mod=res%11;// 4、余數只可能有0、1、2、3、4、5、6、7、8、9、10這11個數字,// 其分別對應的最后一位身份證的號碼為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位以后的數字看是否符合數組endNumsif(ID.substring(17)!=endNums[mod]){return false;}return true;}</script></body> </html>

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。