導航:首頁 > 編程語言 > js判斷身份證

js判斷身份證

發布時間:2023-08-28 03:33:07

① 用js表單 驗證身份證號合法怎麼寫

<script type="text/javascript">
//--身份證號碼驗證-支持新的帶x身份證
function isIdCardNo(num)
{
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var error;
var varArray = new Array();
var intValue;
var lngProct = 0;
var intCheckDigit;
var intStrLen = num.length;
var idNumber = num;
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
//error = "輸入身份證號碼長度不對!";
//alert(error);
//frmAddUser.txtIDCard.focus();
return false;
}
// check and set value
for(i=0;i<intStrLen;i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
//error = "錯誤的身份證號碼!.";
//alert(error);
//frmAddUser.txtIDCard.focus();
return false;
} else if (i < 17) {
varArray[i] = varArray[i]*factorArr[i];
}
}
if (intStrLen == 18) {
//check date
var date8 = idNumber.substring(6,14);
if (checkDate(date8) == false) {
//error = "身份證中日期信息不正確!.";
//alert(error);
return false;
}
// calculate the sum of the procts
for(i=0;i<17;i++) {
lngProct = lngProct + varArray[i];
}
// calculate the check digit
intCheckDigit = 12 - lngProct % 11;
switch (intCheckDigit) {
case 10:
intCheckDigit = 'X';
break;
case 11:
intCheckDigit = 0;
break;
case 12:
intCheckDigit = 1;
break;
}
// check last digit
if (varArray[17].toUpperCase() != intCheckDigit) {
//error = "身份證效驗位錯誤!...正確為: " + intCheckDigit + ".";
//alert(error);
return false;
}
}
else{ //length is 15
//check date
var date6 = idNumber.substring(6,12);
if (checkDate(date6) == false) {
//alert("身份證日期信息有誤!.");
return false;
}
}
//alert ("Correct.");
return true;
}
function checkDate(date)
{
return true;
}
function check()
{
idnum = document.getElementById('idcard').value;
alert(isIdCardNo(idnum));

}
</script>

② js根據身份證判斷是否成年

身份證第7位到第10位是年份,18歲是成年,你自己看看到今年2016年有沒有18歲. 你也是蠢驢凱鍋的粉絲?

③ JS驗證:身份證號碼由15位或18位數字組成.

|^|使用分枝條件時,要注意各個條件的順序。把var regMycard=/^\d{15}$|^\d{18}$/; 改成var regMycard=/^\d{15}|\d{18}$/;那麼就只會匹配版15位的數權字。
原因是匹配分枝條件時,將會從左到右地測試每個條件,如果滿足了某個分枝的話,就不會去再管其它的條件了。不理解的話hi我或者繼續追問

④ JS怎麼通過身份證號碼獲取出生年月日並判斷出生年月格式是否正確

對一個身份證抄號碼是15位或是18位進行襲判斷,用邏輯判斷函數IF()和字元個數計算函數LEN()輔助。 完成形如XXXX-XX-XX樣式的出生年月日自動提取公式: 假如身份證號數據在A1單元格,在B1單元格中編輯公式 =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2),MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2)) 回車確

⑤ JS驗證身份證的正則表達式

|18位身份證:
先用這個表達式取出出生年份
\d{6}(\d{4})\d{8}
$1就是四位的年份,比如1986
在用這個表達式判斷是不是在專1900-2000之間屬
(19\d{2}|2000)

15位身份證,這種身份證1900和2000是區分不出來的,這種身份證年份只用後兩位表示
先用這個表達式取出出生年份
\d{6}(\d{2})\d{7}
$1就是二位的年份,比如86
在用這個表達式判斷是不是在1900-2000之間
\d{2}

這是主要的方法,細節就不寫啦,呵呵,我還有活,祝你好運

⑥ 身份證驗證js

我給你一個很強大的js校驗身份證工具方法,其中身份證號是用jquery從網頁中某個標簽里去取值的,你可以改造成傳參也行。
/*****身份證合法性驗證*****/
function checkIdCard(){
var idcard = $("#certiNbr").val();
if (idcard.replace(/\s/g, "") == "") {
$("#theAvailabilitySpan").html("請輸入證件號碼");
$("#checkButton").attr("disabled", "disabled");
return false;
}
var msg = checkId(idcard);
var code = msg.substring(0,1);

if("0" == code){
msg = msg.substring(1,msg.length);
$("#checkButton").attr("disabled", "disabled");
}
$("#theAvailabilitySpan").html(msg);
}
function checkId(idcard){

var Errors=new Array(
"身份證驗證通過!",
"0身份證號碼位數不對!",
"0身份證號碼出生日期超出范圍或含有非法字元!",
"0身份證號碼校驗錯誤!",
"0身份證地區非法!"
);
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 idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地區檢驗
if(area[parseInt(idcard.substr(0,2))]==null){

return Errors[4];}
//身份號碼位數及格式檢驗
switch(idcard.length){
case 15:
if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.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(idcard)) 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(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
ereg=/^[1-9][0-9]{5}19[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[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(idcard)){//測試出生日期的合法性
//計算校驗位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3 ;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y,1);//判斷校驗位
if(M == idcard_array[17]) return Errors[0]; //檢測ID的校驗位
else return Errors[3];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}

}
function check(obj){

alert(checkIdcard(obj.value));

}

/********************客戶信息end********************/

⑦ 怎麼用js來判斷輸入的密碼是身份證後六位

1、首先,肯定來需要先獲取到身份源證號碼,至於怎麼獲取得,一般可以直接給個輸入框給用戶輸入,可以進行簡單的身份證號碼校驗。
2、其次,獲取用戶輸入的密碼,然後將密碼與身份證號碼後六位進行比較,只是一個簡單的字元串比較,沒有什麼難度。
3、前端的字元串比較處理還是比較簡單的,希望對你有幫助。

閱讀全文

與js判斷身份證相關的資料

熱點內容
javafrom提交地址參數 瀏覽:721
git發布版本 瀏覽:728
vc修改文件名 瀏覽:149
linux65從域 瀏覽:321
用什麼東西壓縮文件 瀏覽:406
怎麼刪除ipad隱藏的APP 瀏覽:981
編程如何佔用大量內存 瀏覽:116
多個excel表格文件如何組合 瀏覽:918
ubuntu內核升級命令 瀏覽:679
pgp文件夾 瀏覽:894
一鍵還原的文件是什麼格式 瀏覽:581
女漢子微信名霸氣十足 瀏覽:65
win10手機藍屏修復 瀏覽:419
windows2008激活工具 瀏覽:259
g71的編程應注意什麼 瀏覽:572
文件路徑不符合是什麼意思 瀏覽:543
qq如何換綁微信綁定 瀏覽:67
文件包下載的安裝包在哪裡 瀏覽:811
90版本升級不送 瀏覽:186
工具箱英文 瀏覽:382

友情鏈接