Проверка легитимности удостоверения личности с помощью javascript

Автор:Умный Набор Инструментов Время выхода:2022-02-25 21:35:00 Количество слов:4843 Читайте:16132Раз

Скопируйте следующий код в проект, напрямую вызовите метод checkIdcard, передайте ID-номер, если он вернет "Verified!" Если возвращается "Verified!", значит, ID-номер легален.

#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 idcard, Y, JYM; var S, M; var idcard_array = Y, JYM
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) % 0 == 0); //Проверка количества цифр и формата идентификационного номера.
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: return Errors[0]; else { return Errors[2]; }
case 18.
//Определение 18-значного идентификационного номера
//Проверка легитимности даты рождения
//leap year month day:((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]))
//PingYiYuanDao:((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 = "10X98
JYM = "10X98765432";
M = JYM.substr(Y, 1); // определите бит четности
if (M == idcard_array[17]) return Errors[0]; //определите контрольную цифру идентификатора
else return Errors[3];
}
else return Errors[2];
break;
default.
return Errors[1]; } else return Errors[2]; break; default.
break; default: return Errors[1]; break
}
}

Оригинальный контент, воспроизведенный с указанием авторства: Умный Набор Инструментов

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

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

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