Saat kami membangun situs web internet, kami sering menggunakan nomor ID kami saat mendaftarkan informasi pribadi. Kami perlu memverifikasi kartu ID kami, jika tidak, orang lain akan melewatinya hanya dengan memasukkan nomor, yang membuat Anda merasa bahwa situs web ini sangat dibuat-buat.
Ada aturan untuk nomor ID.
Struktur dan bentuk
1. Struktur angka
Nomor kewarganegaraan adalah kode kombinasi fitur, yang terdiri dari kode ontologi tujuh belas digit dan kode verifikasi satu digit. Urutan pengaturan dari kiri ke kanan: kode alamat enam digit, tanggal delapan digit kode kelahiran, kode urutan tiga digit dan kode verifikasi satu digit.
2. Kode alamat
Kode Divisi Administratif Kabupaten (Kota, Spanduk, Distrik) di mana kediaman permanen objek pengkodean berada diimplementasikan sesuai dengan ketentuan GB/T2260.
3. Tanggal Kode Kelahiran
Ini menunjukkan tahun, bulan dan hari kelahiran objek yang dikodekan. Itu harus dieksekusi sesuai dengan ketentuan GB/T7408. Tidak ada pemisah antara kode tahun, bulan dan hari.
4. Kode urutan
Ini menunjukkan bahwa di dalam area yang diidentifikasi oleh kode alamat yang sama, nomor urutan yang ditugaskan untuk orang yang lahir pada tahun yang sama, bulan, dan hari. Jumlah ganjil dari kode urutan ditugaskan untuk pria dan bahkan angka ditugaskan untuk wanita.
5. Kode verifikasi
Menurut kode numerik tujuh belas digit pertama, kode verifikasi yang dihitung sesuai dengan ISO 7064: 1983.mod 11-2 kode verifikasi.
Metode perhitungan
1. Lipat gandakan angka 17 digit dari nomor ID sebelumnya dengan koefisien yang berbeda. Koefisien dari posisi pertama ke posisi ketujuh belas adalah: 7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2.
2. Tambahkan hasil dari mengalikan angka dan koefisien 17 digit ini.
3. Gunakan penambahan dan bagi dengan 11 untuk melihat apa sisanya?
4. Sisanya hanya memiliki 11 angka: 0-1-2-3-4-5-6-7-8-9-10. Jumlah kartu ID terakhir yang sesuai dengan itu adalah 1-0-x-9-8-7-6-5-4-3-2.
5. Dari yang di atas, Anda tahu bahwa jika sisanya adalah 3, digit ke -18 dari kartu ID akan muncul 9. Jika angka yang sesuai adalah 2, jumlah terakhir dari kartu ID adalah angka Romawi X.
Misalnya: Nomor ID seorang pria adalah [53010219200508011x], mari kita lihat apakah kartu ID ini adalah kartu ID legal.
Pertama, kita mendapatkan jumlah produk dari 17 bit pertama [(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10) adalah 2) (0*3)+(0*7)+(5*9)+(0*10)+(0*) (0*) (0*) (0*) (0*) (0*) (0*) (0*) (0*) (0*) (0*) (0*) (0*) (0*) (0*) (0*) (0*2)+(0*) (0*) (0*) (0*) (0*) (0 189, dan kemudian membagi 189 dengan 11 adalah 189/11 = 17 ---- 2, yaitu, sisa angka adalah 2. Akhirnya, melalui aturan yang sesuai, Anda dapat mengetahui bahwa kode verifikasi yang sesuai dengan sisa 2 adalah X. Oleh karena itu, dapat ditentukan bahwa ini adalah nomor ID yang benar.
Di atas dikutip dari Baidu Encyclopedia.
Ini adalah gambar informasi terkait yang ditemukan online.
Berdasarkan informasi yang diketahui, kami dapat menulis implementasi internal metode ini di JS. Verifikasi 17-bit pertama lebih mudah diimplementasikan, jadi saya tidak akan banyak bicara, dan fokus pada kode verifikasi digit terakhir.
Salinan kode adalah sebagai berikut:
// Verifikasi Nomor ID
fungsi isidcard (cardid) {
// Ekspresi Reguler Kartu Identitas (18 bit)
var isidcard2 =/^[1-9]/d {5} (19/d {2} | [2-9]/d {3}) ((0/d) | (1 [0-2])) ((0 | 1 | 2]/d) | 3 [0-1]) (/D {4} |/d {3}) |
var stard = "10x98765432"; // Jumlah kartu ID terakhir
var pertama = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // Koefisien 1-17
var sum = 0;
if (! isidcard2.test (cardid)) {
mengembalikan false;
}
var tahun = cardid.substr (6, 4);
var bulan = cardid.substr (10, 2);
var day = cardid.substr (12, 2);
var ulang tahun = cardid.substr (6, 8);
if (ulang tahun! = datetoString (tanggal baru (tahun + '/' + bulan + '/' + hari))) {// Periksa apakah tanggal tersebut legal
mengembalikan false;
}
untuk (var i = 0; i <cardid.length - 1; i ++) {
jumlah += cardid [i] * pertama [i];
}
Hasil var = jumlah % 11;
var last = stard [hasil]; // nomor ID terakhir dihitung
if (cardid [cardid.length - 1] .touppercase () == terakhir) {
Kembali Benar;
} kalau tidak {
mengembalikan false;
}
}
// Tanggal ke String Format Tanggal Pengembalian 2008080808
function datetoString (date) {
if (tanggal instance dari tanggal) {
var tahun = date.getlyear ();
var bulan = date.getMonth () + 1;
Bulan = Bulan <10? '0' + bulan: bulan;
var day = date.getDate ();
Hari = Hari <10? '0' + hari: hari;
tahun pengembalian + bulan + hari;
}
kembali '';
}
Hanya kartu ID 18 digit yang diverifikasi di sini, dan kartu ID generasi pertama 15 digit tidak dapat digunakan.
Di sini kami juga memverifikasi legalitas tanggal, seperti tanggal ilegal seperti 0230, 0431, dan verifikasi tidak akan dilewati.
Kami juga dapat menambahkan metode ini untuk memvalidasi jQuery untuk verifikasi yang mudah.
Tulis metode verifikasi validasi jQuery khusus
Salinan kode adalah sebagai berikut:
// Verifikasi Nomor ID
jquery.validator.addmethod ("isidcard",
fungsi (nilai, elemen) {
kembalikan ini.Optional (elemen) || (isidcard (nilai));
},
"Nomor kartu identitas adalah ilegal!");
Mari kita memiliki demo sederhana untuk melihat cara kerjanya.
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<meta http-equiv = "konten tipe" content = "text /html; charset = utf-8" />
<title>
Verifikasi Nomor ID
</title>
<skrip src = "http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js">
</script>
<skrip src = "http://www.w3cschool.cc/try/demo_source/static/js/jquery.validate.js">
</script>
<type skrip = "Teks/JavaScript">
$ (function () {
$ ("#form1"). Validasi ({
aturan: {
TXTIDCARD: "ISIDCARD"
}
});
});
// Verifikasi Nomor ID
fungsi isidcard (cardid) {
// Ekspresi Reguler Kartu Identitas (18 bit)
var isidcard2 =/^[1-9]/d {5} (19/d {2} | [2-9]/d {3}) ((0/d) | (1 [0-2])) ((0 | 1 | 2]/d) | 3 [0-1]) (/D {4} |/d {3}) |
var stard = "10x98765432"; // Jumlah kartu ID terakhir
var pertama = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // Koefisien 1-17
var sum = 0;
if (! isidcard2.test (cardid)) {
mengembalikan false;
}
var tahun = cardid.substr (6, 4);
var bulan = cardid.substr (10, 2);
var day = cardid.substr (12, 2);
var ulang tahun = cardid.substr (6, 8);
if (ulang tahun! = datetoString (tanggal baru (tahun+'/'+bulan+'/'+hari))) {// Periksa apakah tanggal tersebut legal
mengembalikan false;
}
untuk (var i = 0; i <cardid.length - 1; i ++) {
jumlah += cardid [i] * pertama [i];
}
Hasil var = jumlah % 11;
var last = stard [hasil]; // nomor ID terakhir dihitung
if (cardid [cardid.length - 1] .touppercase () == terakhir) {
Kembali Benar;
} kalau tidak {
mengembalikan false;
}
}
// Tanggal ke String Format Tanggal Pengembalian 2008080808
function datetoString (date) {
if (tanggal instance dari tanggal) {
var tahun = date.getlyear ();
var bulan = date.getMonth () + 1;
Bulan = Bulan <10? '0' + bulan: bulan;
var day = date.getDate ();
Hari = Hari <10? '0' + hari: hari;
tahun pengembalian + bulan + hari;
}
kembali '';
}
// jQuery Validasi Nomor ID Verifikasi
jquery.validator.addmethod ("isidcard",
fungsi (nilai, elemen) {
kembalikan ini.Optional (elemen) || (isidcard (nilai));
},
"Nomor kartu identitas adalah ilegal!");
</script>
</head>
<body>
<Form ID = "Form1" Metode = "Get" Action = "">
<input type = "text" id = "txtidcard" name = "txtidcard" />
<p>
<input type = "kirim" value = "kirim" />
</p>
</form>
</body>
</html>
Verifikasi dengan nomor ID 53010219200508011x disediakan di Baidu Encyclopedia
Verifikasi dapat dilewati, coba ganti x menjadi 0
Jika verifikasi gagal, metode verifikasi yang kami tulis berhasil! Jika Anda tidak percaya, coba gunakan nomor ID Anda. Ternyata saya menggunakan JS untuk memverifikasi nomor ID begitu mudah.
Di atas adalah semua tentang artikel ini, saya harap Anda menyukainya.