Heim > Web-Frontend > js-Tutorial > Hauptteil

JavaScript implementiert Code_Javascript-Fähigkeiten zur ID-Kartenüberprüfung

WBOY
Freigeben: 2016-05-16 15:15:18
Original
1206 Leute haben es durchsucht

Die Bedeutung jeder 18-stelligen ID-Nummer

1-2-stelliger Provinz-, Autonomieregions- oder Gemeindecode
3-4-stelliger Stadt-, Liga- und autonomer Präfekturcode
5- bis 6-stelliger Kreis-, Stadt- und Bezirkscode auf Kreisebene; 7-14 Ziffern des Geburtsdatums, zum Beispiel 19670401 steht für den 1. April 1967;
Die Ziffern 15–17 sind Folgenummern, davon sind 17 Ziffern ungerade Zahlen für Männer und gerade Zahlen für Frauen
18 Ziffern sind Prüfcodes, 0-9 und X, die durch die Formel
zufällig generiert werden

Beispiel:


340523 1980 0101 0013 Die Bedeutung dieser ID-Nummer:

34 ist die Provinz Anhui
05 ist die Stadt Ma'anshan
23 ist He County
19800101 ist das Geburtsdatum (1. Januar 1980)
001 ist die Sequenznummer (1 ist eine ungerade Zahl und steht für männlich)
3 ist der Bestätigungscode

Verwaltungsabteilungscode


Neueste Verwaltungsabteilungscodes für Landkreise und höher (Stand 31. Oktober 2014)

Peking-Stadt (110000 BJ)

Stadt Tianjin (120000 TJ)
Provinz Hebei (130.000 HE)
Provinz Shanxi (140000 SX)
Autonome Region Innere Mongolei (150.000 Seemeilen)
Provinz Liaoning (210000 LN)
Provinz Jilin (220000 JL)
Provinz Heilongjiang (230000 HL)
Shanghai (310000 SH)
Provinz Jiangsu (320000 JS)
Provinz Zhejiang (330000 ZJ)
Provinz Anhui (340.000 AH)
Provinz Fujian (350000 FJ)
Provinz Jiangxi (360000 JX)
Provinz Shandong (370000 SD)
Provinz Henan (410.000 ha)
Provinz Hubei (420000 HB)
Provinz Hunan (430000 HN)
Provinz Guangdong (440000 GD)
Autonome Region Guangxi Zhuang (450000 GX)
Provinz Hainan (460000 HI)
Chongqing-Stadt (500000 CQ)
Provinz Sichuan (510000 SC)
Provinz Guizhou (520000 GZ)
Provinz Yunnan (530000 YN)
Autonome Region Tibet (540000 XZ)
Provinz Shaanxi (610000 SN)
Provinz Gansu (620000 GS)
Provinz Qinghai (630000 QH)
Autonome Region Ningxia Hui (640000 NX)
Uigurisches Autonomes Gebiet Xinjiang (650000 XJ)
Provinz Taiwan (710000 Tw)
Sonderverwaltungszone Hongkong (810000 HK)
Sonderverwaltungszone Macau (820.000 Mo)

Berechnungsmethode der 18. Stelle des Personalausweises (Prüfcode)

Multiplizieren Sie die ersten 17 Ziffern der ID-Nummer mit verschiedenen Koeffizienten; Die Koeffizienten von der ersten bis zur siebzehnten Position sind: 7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
Addieren Sie die Ergebnisse der Multiplikation dieser 17-stelligen Zahlen und Koeffizienten; Teilen Sie die Summe durch 11, um den Rest zu ermitteln Der Rest kann nur 11 Zahlen sein: 0-1-2-3-4-5-6-7-8-9-10; Die entsprechende letzte ID-Nummer ist 1-0-X-9-8-7-6-5-4-3-2
Aus dem oben Gesagten wissen wir, dass bei einem Rest von 2 die römische Zahl X an der 18. Stelle des Personalausweises erscheint. Beträgt der Rest 10, ist die letzte Zahl auf dem Personalausweis die 2.
Beispiel:
Die ID-Nummer eines bestimmten Mannes lautet 340523198001010013. Wir müssen prüfen, ob es sich bei diesem Personalausweis um einen legalen Personalausweis handelt.

Zuerst erhalten wir die Summe der Produkte der ersten 17 Ziffern:
(3*7 4*9 0*10 5*5 2*8 3*4 1*2 9*1 8*6 0*3 0*7 1*9 0*10 1*5 0*8 0*4 1 *2) = 185
Dann fragen Sie nach dem Rest:
185 % 11 = 9

Schließlich können wir durch die entsprechenden Regeln wissen, dass die Zahl, die dem Rest 9 entspricht, 3 ist. Daher kann festgestellt werden, dass es sich um eine qualifizierte ID-Nummer handelt.



JavaScript zur Überprüfung des 18-stelligen Personalausweises



Code kopieren

Überprüfen Sie zunächst, ob die Stellenanzahl 18 Stellen beträgt:

Überprüfen Sie dann, ob die ersten beiden Ziffern gesetzliche Provinzen (Gemeinden/autonome Regionen) sind:

if(!/^\d{17}(\d|x)$/i.test(ID)) return false;
// \d  匹配数字
// ^  匹配开始
// $  匹配结尾
// i  不区分大小写
// {17} 匹配17次
// \d|x 匹配数字或x
Nach dem Login kopieren

// Die Methode stringObject.substr(start,length) kann die angegebene Anzahl von Zeichen beginnend mit dem Startindex in der Zeichenfolge

extrahieren // Zusätzlich zur Punktsyntax (.) können Sie beim Zugriff auf Objekteigenschaften auch eckige Klammern ([]) verwenden. Die Verwendung von eckigen Klammern ist flexibler
if(city[ID.substr(0,2)] === undefined) return "非法地区";
Nach dem Login kopieren
Überprüfen Sie dann, ob das Geburtsdatum gültig ist:



Stellen Sie abschließend fest, ob der Prüfcode korrekt ist:

var birthday = ID.substr(6, 4) + '/' + Number(ID.substr(10, 2)) + '/' + Number(ID.substr(12, 2));
var d = new Date(birthday);
var newBirthday = d.getFullYear() + '/' + Number(d.getMonth() + 1) + '/' + Number(d.getDate());
var currentTime = new Date().getTime();
var time = d.getTime();
if(time >= currentTime || birthday !== newBirthday) return '非法生日';
// 获取身份证的年月日,然后再 new 一个 Date,再对比这两个日期是否一致
// 这里用Number()主要是因为身份证的日期是带0的,而new Date()出来的日期是不带0的,Number()之后就都不带0了
Nach dem Login kopieren

Wenn die oben genannte Überprüfung bestanden wird, handelt es sich um eine gültige ID-Nummer

Vollständiger Code
var arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
var arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
var sum = 0, i, residue;
for(i=0; i<17; i++) {
 sum += ID.substr(i, 1) * arrInt[i];
}
residue = arrCh[sum % 11];
if (residue !== ID.substr(17, 1)) '非法证号';
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!