Rumah > pembangunan bahagian belakang > tutorial php > Cara menggunakan ungkapan biasa PHP untuk mengesahkan kesahihan nombor ID

Cara menggunakan ungkapan biasa PHP untuk mengesahkan kesahihan nombor ID

WBOY
Lepaskan: 2023-06-24 13:26:01
asal
1115 orang telah melayarinya

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;
}
Salin selepas log masuk

Perihalan kod:

  • Barisan 1 hingga 21 mentakrifkan nama Ia adalah fungsi "validate_id_card", digunakan untuk mengesahkan kesahihan nombor ID. Fungsi ini menerima parameter $id_card, iaitu nombor ID.
  • Baris 3 mengesahkan bahawa panjang nombor ID ialah 18 digit.
  • Baris 6 hingga 10 mengesahkan bahawa digit pertama hingga keenam nombor ID ialah nombor atau huruf.
  • Baris 13 hingga 22 mengesahkan bahawa digit ketujuh hingga empat belas nombor ID ialah nombor dan semak sama ada tarikh itu sah.
  • Baris 25 hingga 29 mengesahkan bahawa digit ke-15 hingga ke-17 nombor ID ialah nombor.
  • Baris 32 hingga 36 mengesahkan bahawa digit terakhir dalam nombor ID ialah nombor atau huruf.
  • Baris 39 hingga 50 mengesahkan sama ada kod semakan nombor ID adalah betul.

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.' 不是有效的身份证号码';
}
Salin selepas log masuk

Output:

510722199091231234 是有效的身份证号码
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan