Nombor ID ialah dokumen penting yang sering digunakan oleh orang ramai dalam kehidupan seharian, dan pengesahan kod semakan terakhir dalam nombor ID ialah bahagian penting sama ada nombor ID itu sah. Apabila menggunakan pengaturcaraan PHP, kami boleh menggunakan ungkapan biasa untuk mengesahkan kod semak dalam nombor ID untuk memastikan kesahihan nombor ID. Berikut akan memperkenalkan kaedah mengesahkan kod semakan nombor kad ID menggunakan ungkapan biasa PHP.
Pertama sekali, kita perlu memahami format nombor ID. Nombor kad pengenalan terdiri daripada 18 digit dan huruf, yang mana 17 digit pertama mewakili wilayah, bandar, daerah, tarikh lahir dan maklumat lain, dan digit terakhir ialah kod semakan. Peraturan pengiraan kod semak adalah seperti berikut:
Dengan pengetahuan asas di atas, kami boleh menulis ungkapan biasa untuk mengesahkan nombor ID. Berikut ialah kod sampel:
function checkIDCard($id_card){ $pattern = '/^d{6}(19|20)d{2}(0d|1[0-2])([0-2]d|3[0-1])d{3}[0-9X]$/'; if(preg_match($pattern, $id_card)){ $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); $ai = str_split(substr($id_card, 0, 17)); $n = 0; for($i=0; $i<17; $i++){ $n += $wi[$i] * $ai[$i]; } $c = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); $check_code = $c[$n % 11]; return $check_code == substr($id_card, -1); } return false; } $id_card = '33010219950917413X'; if(checkIDCard($id_card)){ echo '身份证号码校验成功'; }else{ echo '身份证号码校验失败'; }
Dalam ungkapan biasa di atas, d bermaksud nombor yang sepadan, {6} bermaksud sepadan 6 kali, (19|20)d{2} bermaksud nombor yang sepadan bermula dengan 19 atau 20 4 digit, (0d|1[0-2]) bermaksud memadankan bulan dari 01 hingga 12, ([0-2]d|3[0-1]) bermaksud memadankan tarikh dari 01 hingga 31, d{3} bermakna Padankan tiga nombor lagi, [0-9X]$ bermakna ia berakhir dengan nombor atau X. Ini akan sepadan dengan nombor ID dengan berkesan.
Akhir sekali, kami boleh menguji sama ada kod kami berfungsi. Kami boleh menukar kod pengesahan nombor kad pengenalan untuk menyemak sama ada fungsi pengesahan kod itu normal. Contohnya:
$id_card = '330102199509174133';
atau:
$id_card = '330102199509174139';
Kod semakan kedua-dua nombor ID ini adalah salah dan tidak sepatutnya lulus pengesahan. Dan apabila kami menjalankan kod, kami akan melihat bahawa keputusan kegagalan pengesahan nombor ID adalah output, membuktikan bahawa kod kami boleh berfungsi seperti biasa.
Ringkasnya, agak mudah untuk menggunakan ungkapan biasa PHP untuk mengesahkan kod semakan nombor ID Anda hanya perlu menulis ungkapan biasa yang sesuai dan fungsi yang berkaitan untuk melengkapkan pengesahan nombor ID dengan mudah. Kerja pengesahan.
Atas ialah kandungan terperinci Bagaimana untuk mengesahkan kod semak nombor kad pengenalan menggunakan ungkapan biasa PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!