Copia il seguente codice al progetto, chiama direttamente il metodo checkidcard, passa il numero id e restituisci "verifica passata!" Significa che il numero id è legale.
# Googlead #
Function checkidcard (idcard) {
Errori var = new Array (
"Verifica passata! ","
"Il numero di numeri id non è corretto! ","
"La data di nascita del numero id è fuori portata o contiene caratteri illegali! ",
"Errore di verifica del numero id! ","
"L'area della carta d'identità è illegale! "
);
Var area = { 11: "pechino", 12: "tianjin", 13: "hebei", 14: "shanxi", 15: "mongolia interna", 21: "liaoning", 22: "jilin", 23: "heilongjiang" 31: "shanghai", 32: "jiangsu", 33: "zhejiang", 34: "anhui", 35: "fujian", 36: "jiangxi", 37: "shandong", 41: "henan", 42: "hubei", 43: "hunan", 44: "guangdong", 45: "guangxi", 46: "hainan" 50: "chongqing", 51: "sichuan", 52: "guizhou", 53: "yunnan", 54: "tibet", 61: "shaanxi", 62: "gansu", 63: "qinghai", 64: "ningxia", 65: "xinjiang", 71: "taiwan", 81: "hong kong", 82: "macao", 91: "all'estero" }
Retflag var = false;
Var idcard, y, jym;
Var S, M;
Idcard_array var = new Array();
Idcard_array = idcard.split("");
// Ispezione regionale
If (area[parseInt(idcard.substr(0, 2)] = = null) return Errori [4];
// Come numero di cifre e di ispezione formato
Switch (idcard.length) {
Caso 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}$/;// test legittimità data di nascita
} 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}$/;// testare la legittimità della data di nascita
}
If (ereg.test(idcard)
Ritorno Errori [0];
Else {
Return errors [2];
}
Break;
Caso 18:
// 18 test numero di identificazione
// Verifica della legalità della data di nascita
// 闰 anno :((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])
// Giorno del mese:((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]$/;// espressione regolare della legalità della data di nascita nell'anno bisestile
} 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]$/;// espressione regolare della legittimità della data di nascita
}
If (ereg.test(idcard)) {// testare la legittimità della data di nascita
// Calcola bit
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);// determina bit
If (M = = idcard_array[17]) return Errori [0]; // test bit ID
Else return Errori [3];
}
Else return Errori [2];
Break;
Impostazione predefinita:
Ritorno Errori [1];
Break;
}
}
Contenuto originale, si prega di indicare la fonte:Libreria di strumenti intelligenti