Apabila membangunkan aplikasi yang memerlukan input nombor ID, adalah sangat penting untuk memastikan nombor ID yang dimasukkan adalah sah. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan kesahihan nombor ID.
Apakah itu nombor ID?
Nombor kad pengenalan digunakan untuk mengenal pasti penduduk China (Tanah Besar) Ia adalah nombor pengenalan peribadi yang terdiri daripada 18 digit dan huruf.
Struktur nombor ID
Nombor ID terdiri daripada 18 digit dan huruf Angka pertama ialah nombor, menunjukkan wilayah atau perbandaran di mana ia berada, dan yang kedua hingga keenam. digit ialah nombor , menunjukkan wilayah, digit ketujuh hingga empat belas ialah kod tarikh, menunjukkan tarikh lahir, digit kelima belas hingga tujuh belas ialah nombor, menunjukkan kod balai polis tempatan, dan digit kelapan belas ialah nombor atau huruf. , mengikut Dikira oleh algoritma dan digunakan untuk mengesahkan ketepatan nombor ID.
Gunakan ungkapan biasa untuk mengesahkan kesahihan nombor ID
Ungkapan biasa ialah bahasa yang menerangkan corak rentetan dan boleh digunakan untuk mendapatkan semula, menggantikan dan memisahkan rentetan. Gunakan ungkapan biasa PHP untuk mengesahkan kesahihan nombor ID.
Berikut ialah beberapa peraturan pengesahan nombor ID asas:
1. Nombor ID terdiri daripada 18 digit dan huruf.
2. Digit pertama hingga keenam nombor ID menunjukkan kawasan tempat anda berada dan mematuhi kod bahagian pentadbiran yang ditetapkan.
3. Digit ketujuh hingga keempat belas nombor kad pengenalan menunjukkan tarikh lahir dan konsisten dengan tarikh yang sah.
4. Angka ke-15 hingga ke-17 nombor ID mewakili kod balai polis tempatan.
5 Digit terakhir dalam nombor ID ialah kod semakan, yang boleh dikira melalui algoritma.
Mengikut peraturan di atas, ungkapan biasa dibahagikan kepada bahagian berikut:
1. Panjang nombor ID ialah 18 digit.
2. Digit pertama hingga keenam nombor ID ialah nombor atau huruf.
3. Digit ketujuh hingga keempat belas nombor kad pengenalan adalah nombor dan mematuhi kesahihan tarikh tersebut.
4. Digit ke-15 hingga ke-17 nombor ID ialah nombor.
5 Digit terakhir dalam nombor ID ialah nombor atau huruf.
Mengikut peraturan di atas, anda boleh menulis kod ungkapan biasa PHP berikut:
function validate_id_card($id_card){ //身份证号码的长度为18位 if(strlen($id_card)!=18){ return false; } //身份证号码中第一位至第六位是数字或字母 $pattern='/^[0-9a-zA-Z]{6}/'; if(!preg_match($pattern, substr($id_card,0,6))){ return false; } //身份证号码中第七位至第十四位是数字,且符合日期的合法性 $date=substr($id_card,6,8); if(!is_numeric($date)){ return false; } $year=(int)substr($date,0,4); $month=(int)substr($date,4,2); $day=(int)substr($date,6,2); if(!checkdate($month,$day,$year)){ return false; } //身份证号码中第十五位至第十七位是数字 $pattern='/^d{3}/'; if(!preg_match($pattern, substr($id_card, 14, 3))){ return false; } //身份证号码中最后一位是数字或字母 $pattern='/^[0-9a-zA-Z]{1}/'; if(!preg_match($pattern, substr($id_card, 17, 1))){ return false; } //校验码验证 $digit_array=array(1,0,'X',9,8,7,6,5,4,3,2); $check_sum=0; for($i=0;$i<17;$i++){ $check_sum += substr($id_card,$i,1)*$digit_array[$i]; } $mod=$check_sum%11; $verify_code=$digit_array[$mod]; if($verify_code != strtoupper(substr($id_card,17))){ return false; } return true; }
Perihalan kod:
Contoh Penggunaan
Berikut ialah cara menggunakan fungsi ini dalam PHP:
$id_card='510722199091231234'; if(validate_id_card($id_card)){ echo $id_card.' 是有效的身份证号码'; } else{ echo $id_card.' 不是有效的身份证号码'; }
Output:
510722199091231234 是有效的身份证号码
Ringkasan
Melalui kod ungkapan biasa PHP di atas dan contoh penggunaan, kita boleh merealisasikan pengesahan kesahihan nombor kad pengenalan. Apabila membangunkan aplikasi yang menggunakan nombor ID, adalah sangat penting untuk memastikan kesahihan nombor ID untuk mengelakkan pengecualian dan ralat yang disebabkan oleh input data yang salah.
Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa PHP untuk mengesahkan kesahihan nombor ID. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!