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

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

Скопируйте следующий код в проект, напрямую вызовите метод 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)

Связанные чтения

Сводка общих регулярных выражений

Обзор распространенных регулярных выражений, используемых программистами

Знания ICON, которые должны знать все дизайнеры

Желтый персик Цзиньсянь из персикового сада Аньфуси в Чжицзяне - сладкий подарок лета

В это жаркое лето хрустящий, сладкий и сочный желтый персик, кажется, приносит нам бесконечную прохладу и счастье. Желтые персики Jinxiang из персикового сада Anfusi в городе Чжицзян, провинция Хубэй, - просто лучший фрукт этого сезона. Свежие желтые персики, собранные только сегодня утром, с ароматом утренней росы и теплом солнца, уже доступны. Где бы вы ни находились, мы быстро доставим вам сладость лета с бесплатной доставкой по городу Ичан, провинция Хубэй.

Световое шоу на мосту через реку Янцзы в Вуцзягане, шоу дронов

Световое шоу и выступление дронов на мосту через реку Янцзы в районе Вуцзяган, город Ичан, провинция Хубэй, 31 июля 2021 года, Китай.

Рождение инструмента для конвертирования файлов формата OFD онлайн

"Умный Набор Инструментов" получал OFD-файлы, переходил на JAVA-сайт для преобразования формата, и в итоге PDF или картинка представлялась пользователю.

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