Javascript проверяет законность удостоверения личности

Автор:Библиотека интеллектуальных инструментов Время выхода:2022-02-25 21:35:00 Количество слов:4336 Читайте:8188Раз

Скопируйте следующий код в проект, вызовите метод checkIdcard напрямую, передайте идентификационный номер и верните ?Проверка прошла!? Это означает, что идентификационный номер является законным.

# GoogleAD #

Function checkIdcard(idcard) {
Var Errors = new Array (
?Проверка прошла! ",
"Идентификационный номер неверен! ",
"Идентификационный номер Дата рождения выходит за рамки или содержит незаконные символы! ",
?Ошибка проверки идентификационного номера! ",
?Зона удостоверения личности незаконна! "
);
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 retflag = false;
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;
}
}

Оригинальный контент, перепечатка, пожалуйста, укажите источник:Библиотека интеллектуальных инструментов

Комментарии (всего 0)

Рекомендации и отзывы Свяжитесь с нами