1. 程式人生 > >驗證身份證的合法性

驗證身份證的合法性

function check(ID_ICCID){
    var Errors=new Array( 
    "OK", 
    "身份證號碼位數不對!", 
    "身份證號碼出生日期超出範圍或含有非法字元!", 
    "身份證號碼校驗錯誤!", 
    "身份證地區非法!" 
    );

    var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",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:"臺灣",81:"香港",82:"澳門",91:"國外"} var ID_ICCID,Y,JYM; var S,M; var ID_ICCID_array = new Array(); ID_ICCID_array = ID_ICCID.split(""); //地區檢驗 if(area[parseInt
(ID_ICCID.substr(0,2))]==null) return Errors[4]; //身份號碼位數及格式檢驗 switch(ID_ICCID.length){ case 15: if ( (parseInt(ID_ICCID.substr(6,2))+1900) % 4 == 0 || ((parseInt(ID_ICCID.substr(6,2))+1900) % 100 == 0 && (parseInt(ID_ICCID.substr(6,2))+1900) % 4 == 0 )){ ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/
;//測試出生日期的合法性 } else { ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//測試出生日期的合法性 } if(ereg.test(ID_ICCID)){ return Errors[0]; }else{ return Errors[2]; } break; case 18: //18位身份號碼檢測 //出生日期的合法性檢查 //閏年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9])) //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8])) if ( parseInt(ID_ICCID.substr(6,4)) % 4 == 0 || (parseInt(ID_ICCID.substr(6,4)) % 100 == 0 && parseInt(ID_ICCID.substr(6,4))%4 == 0 )){ ereg=/^[1-9][0-9]{5}((19)|(20))[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//閏年出生日期的合法性正則表示式 } else { ereg=/^[1-9][0-9]{5}((19)|(20))[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正則表示式 } if(ereg.test(ID_ICCID)){//測試出生日期的合法性 //計算校驗位 S = (parseInt(ID_ICCID_array[0]) + parseInt(ID_ICCID_array[10])) * 7 + (parseInt(ID_ICCID_array[1]) + parseInt(ID_ICCID_array[11])) * 9 + (parseInt(ID_ICCID_array[2]) + parseInt(ID_ICCID_array[12])) * 10 + (parseInt(ID_ICCID_array[3]) + parseInt(ID_ICCID_array[13])) * 5 + (parseInt(ID_ICCID_array[4]) + parseInt(ID_ICCID_array[14])) * 8 + (parseInt(ID_ICCID_array[5]) + parseInt(ID_ICCID_array[15])) * 4 + (parseInt(ID_ICCID_array[6]) + parseInt(ID_ICCID_array[16])) * 2 + parseInt(ID_ICCID_array[7]) * 1 + parseInt(ID_ICCID_array[8]) * 6 + parseInt(ID_ICCID_array[9]) * 3 ; Y = S % 11; M = "F"; JYM = "10X98765432"; M = JYM.substr(Y,1);//判斷校驗位 if(M == ID_ICCID_array[17]){ return Errors[0];//檢測ID的校驗位 } else { return Errors[3]; } }else { return Errors[2]; } break; default: return Errors[1]; break; } }

相關推薦

Java 驗證身份證號的合法性(只利用校驗位)

import java.util.Scanner; public class E201_06_04_身份證驗證 { public static void main(String[] args)

驗證身份證合法性

function check(ID_ICCID){ var Errors=new Array( "OK", "身份證號碼位數不對!", "身份證號碼出生日期超出範圍或含有非法字元!", "身份證號碼校驗錯誤!",

php 驗證 身份證號碼 合法性 相容 (15位 和 18位身份證號碼)

<?php header("Content-Type: text/html; charset=utf-8"); echo "<p align='center'> <form method='post'>

驗證身份證號碼的正確性

判斷 號碼 match function inpu func urn input alert id為input的id// 判斷身份證是否正確$(‘#iscard‘).blur(function() { var card = $.trim($("#iscard").va

驗證shenfenzheng合法性

驗證shenfenzheng合法性1.實現代碼如下/** * 驗證合法性 */ function checkIdCard($idcard){ $City = array(11=>"北京", 12=>"天津", 13=&

java驗證身份證號碼是否有效源代碼

numeric turn info 末尾 open 範圍 是否 驗證 pri 原文:http://www.open-open.com/code/view/1420373343171 1、描述 用java語言判斷身份證號碼是否有效,地區碼、出身年月、校驗碼等驗證算法

EXCEL規範數據輸入教程-驗證身份證

excelEXCEL日常工作中經常會輸入身份證號碼,一不小心就可能出錯,今天大飛老師就分享這樣一個示例EXCEL規範數據輸入教程-驗證身份證號。 我們首先要保證在EXCEL中能正確輸入身份證號碼(PS:身份證號18位,直接輸入就會變成科學計數法形式1.235E+17),可以通過兩種方式。方式一:單引號+身份證

jquery驗證身份證號碼、手機號碼

htm tee false 檢測 包括 ber == 香港 bst // 驗證身份證 function IsUserCard(idNo) { if (idNo.length != 0) { if (!checkCard(idNo)) {

js驗證身份證號碼是否合規

blog i++ num sub 包括 功能 iso errcode split 需求:最近要做實名驗證的功能,但是驗證身份證號碼和身份證圖片的接口不想短信,比較貴,所以之前我們要驗證嚴謹一點,參考了網上關於驗證身份證號碼的代碼,總結一下 代碼: //驗證身份證號碼 fu

JS驗證身份證

變量 是否 無法 trim text 有效 浙江 ram 直接 話不多說,直接看代碼 JS部分 /** * 身份證15位編碼規則:dddddd yymmdd xx p * dddddd:地區碼 * yymmdd: 出生年月日 * xx: 順序類編碼,無法確定

php 驗證身份證

div als check subst 特殊 number cti turn for function validation_filter_id_card($id_card){ if(strlen($id_card)==18){ ret

java身份證合法性校驗並獲取並根據身份證號提取身份證相關資訊

原文地址:https://blog.csdn.net/ycb1689/article/details/52352147   /** * 身份證前6位【ABCDEF】為行政區劃數字程式碼(簡稱數字碼)說明(參考《GB/T 2260-2007 中華人民共和國行政區劃程式碼》): *

正則表示式---驗證身份證號碼

/** * 正則表示式驗證身份證號碼 * * @param integer $num 所要驗證的身份證號碼 * @return boolean */ public static function isPersonalCard($

js驗證身份證號碼(省份 生日規範 避免無效資訊)

var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江",31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北",4

使用正則表達式驗證身份證

har info 通過 png 驗證身份證 正則 csharp ida () 實現效果: 關鍵知識: 實現代碼: private void button1_Click(object sender, EventArgs e) {

使用正則表示式驗證身份證

實現效果: 關鍵知識:   實現程式碼: private void button1_Click(object sender, EventArgs e) { if (IsValidate(textBox1.Text.ToStri

js實現完美身份證號有效性驗證+身份證與姓名匹配

/* 根據〖中華人民共和國國家標準 GB 11643-1999〗中有關公民身份號碼的規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。     地址碼錶示編碼物件

Spirng自定義註解(驗證身份證+性別+地區)

第一步:定義註解   MyDateTimeFormat: package com.wbg.maven1128.intface; import java.lang.annotation.*; @Documented @Retention(RetentionPolicy.

利用自定義的異常驗證郵箱合法性(不使用正則)

不用正則表示式,驗證郵箱合法性 a、本地驗證---驗證的是郵箱與密碼的格式 --郵箱: 1、要有@ . 2、@ . 前後不能為空 3、@要在 . 的前面 4、@前面的長度至少是10,包含數字,字母,且必須有大寫字母 b

驗證身份證資訊

  public function isCreditNo($vStr){         $vCity = array(             '11','12','13','14','1