91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS前后端實現身份證號驗證的方法

發布時間:2020-07-23 14:03:34 來源:億速云 閱讀:212 作者:小豬 欄目:開發技術

這篇文章主要講解了JS前后端實現身份證號驗證的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

前言

  實名制是許多網站都必備的功能,因此用戶經常需要輸入身份證號,但是我們無法連通公安局的數據庫進行驗證身份證和姓名地址是否匹配,因此可以根據身份證生成的規則來進行身份證格式的驗證,以下僅介紹二代身份證的驗證。

計算公式

  公民身份號碼是特征組合碼,由十七位數字本體碼和一位校驗碼組成。

  排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位校驗碼。

    1、地址碼:表示編碼對象常住戶口所在縣(市、旗、區)的行政區域劃分代碼,按GB/T2260的規定執行。

    2、出生日期碼:表示編碼對象出生的年、月、日,按GB/T7408的規定執行,年、月、日代碼之間不用分隔符。

    3、順序碼:表示在同一地址碼所標識的區域范圍內,對同年、同月、同日出生的人編定的順序號,順序碼的奇數分配給男性,偶數分配給女性。

    4、校驗碼計算步驟:

      (1)十七位數字本體碼加權求和公式:

        S = Sum(Ai * Wi), i = 0, … , 16 ,先對前17位數字的權求和;
        Ai:表示第i位置上的身份證號碼數字值(0~9);
        Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 (表示第i位置上的加權因子);

      (2)計算模:Y = mod(S, 11);

      (3)根據模,查找得到對應的校驗碼:Y: 0 1 2 3 4 5 6 7 8 9 10   校驗碼: 1 0 X 9 8 7 6 5 4 3 2;

前端驗證

const weight = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];//十七位數字本體碼權重
const validate = ['1','0','X','9','8','7','6','5','4','3','2'];//mod11,對應校驗碼字符值

function getValidateCode(id17){
 let sum = 0;
 let mode = 0;
 [...id17].forEach((elem,i) => {
  sum=sum+parseInt(elem)*weight[i];
 });
 mode = sum % 11;
 return validate[mode];
}
console.log("該身份證驗證碼:"+ getValidateCode("14230219700101101"));//該身份證驗證碼:3

后端驗證(Java)

public class Id18 {
 int[] weight={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};//十七位數字本體碼權重
 char[] validate={ '1','0','X','9','8','7','6','5','4','3','2'};//mod11,對應校驗碼字符值  
 
 public char getValidateCode(String id17){
   int sum = 0;
   int mode = 0;
   for(int i = 0; i < id17.length(); i++){
     sum=sum+Integer.parseInt(String.valueOf(id17.charAt(i)))*weight[i];
   }
   mode = sum % 11;
   return validate[mode];
 }
 
 public static void main(String[] args){
   Id18 tes t= new Id18();
   System.out.println("該身份證驗證碼:"+test.getValidateCode("14230219700101101"));//該身份證校驗碼:3
 }
}

總結

  身份證驗證和手機號郵箱等格式驗證是一樣的,都要做前后端雙重驗證,前端驗證不通過就不勞煩后端驗證,減輕服務器的壓力;

  至于一代身份證的驗證大家也可以查詢下相關的算法,在原基礎上改改即可,我感覺現在好像也沒有一代身份證了,亦或者用一代身份證的人都不怎么上網,因此這里就不寫了。

看完上述內容,是不是對JS前后端實現身份證號驗證的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

平度市| 克拉玛依市| 合水县| 治县。| 大埔区| 二连浩特市| 瑞昌市| 镇平县| 安庆市| 蒙城县| 延边| 左云县| 田东县| 江川县| 北川| 垦利县| 彭山县| 江西省| 轮台县| 东山县| 尼玛县| 乌审旗| 澄迈县| 万荣县| 垣曲县| 阳高县| 皮山县| 邢台县| 宽城| 唐山市| 光泽县| 绥芬河市| 汨罗市| 驻马店市| 石景山区| 宝丰县| 郑州市| 舒城县| 资讯| 三台县| 萝北县|