Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mengesahkan format kad ID menggunakan ungkapan biasa PHP

Bagaimana untuk mengesahkan format kad ID menggunakan ungkapan biasa PHP

PHPz
PHPzasal
2023-06-24 10:34:291485semak imbas

Kad ID ialah dokumen penting Untuk tapak web, apl dan aplikasi lain, selalunya perlu untuk mengesahkan sama ada nombor ID yang dimasukkan oleh pengguna memenuhi spesifikasi. PHP menyediakan cara yang sangat mudah untuk mencapai fungsi ini, iaitu, menggunakan ungkapan biasa.

Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan format nombor ID yang betul.

1. Format nombor kad ID

Sebelum menggunakan ungkapan biasa PHP untuk mengesahkan format nombor kad ID, kita perlu memahami peraturan format nombor kad pengenalan. Format nombor kad pengenalan China mempunyai jumlah 18 digit, 17 digit pertama ialah nombor, dan digit terakhir ialah kod semak (yang mungkin nombor atau huruf besar).

Peruntukan khusus adalah seperti berikut:

  1. 6 digit pertama ialah kod alamat, menunjukkan kod bahagian pentadbiran tempat kediaman.
  2. Seterusnya ialah tarikh lahir 8 digit dalam format YYYYMMDD.
  3. 4 digit seterusnya ialah kod jujukan, menunjukkan nombor jujukan orang yang dilahirkan dalam kawasan kod alamat yang sama dan digit terakhir ialah pengecam jantina. Nombor ganjil adalah lelaki, nombor genap adalah perempuan.
  4. Digit terakhir ialah kod semak, yang boleh menjadi nombor atau huruf X.

Sekarang kita tahu format nombor ID, kita boleh menggunakan ungkapan biasa PHP untuk mengesahkan ketepatannya.

2. Pengesahan ungkapan biasa

Pengesahan ungkapan biasa biasanya menggunakan fungsi preg_match, dan sintaksnya adalah seperti berikut:

preg_match($pattern, $subject);

Antaranya, $pattern mewakili ungkapan biasa dan $subject mewakili rentetan Pengesahan keperluan. Jika perlawanan itu berjaya, kembalikan 1, jika tidak pulangkan 0.

Seterusnya, kita perlu membina ungkapan biasa yang boleh mengesahkan format nombor ID. Kaedah pelaksanaan khusus adalah seperti berikut:

  1. Pertama, gunakan d untuk memadankan nombor dan gunakan [xXd] untuk memadankan X atau x atau nombor.
  2. Kemudian, gunakan {18} untuk menunjukkan pengulangan 18 kali.
  3. Seterusnya, tambahkan sekatan selang waktu pada 6 digit pertama dan gunakan ungkapan biasa /^([1-9]d{5})/, menunjukkan bahawa digit pertama ialah 1-9 dan 5 digit berikut ialah sebarang nombor.
  4. Tambahkan sekatan selang waktu pada tarikh lahir 8 digit, menggunakan ungkapan biasa /(d{4})([0-9]{2})([0-9]{2})/ , menunjukkan bahawa 4 digit pertama ialah sebarang nombor, 2 digit terakhir berjulat dari 00 hingga 99, dan 2 digit terakhir juga dari 00 hingga 99.
  5. Gunakan ungkapan biasa /(d{3})(d{3})(d{2})(d[xXd])/ pada kod jujukan, menunjukkan bahawa 3 digit pertama ialah sebarang nombor 3 digit tengah ialah sebarang nombor, 2 digit terakhir juga merupakan sebarang nombor, dan digit terakhir boleh menjadi nombor atau huruf X.

Ringkasnya, ungkapan biasa terakhir boleh diperolehi:

/^([1-9]d{5})(d{4})([0-9]{2})([0-9]{2})(d{3})(d{3})(d{2})(d[xXd])$/

Menggunakan ungkapan biasa PHP untuk mengesahkan nombor ID memerlukan fungsi preg_match Contoh kod adalah seperti berikut:

function check_id_card($id_card) {
    // 加上正则表达式
    $reg = '/^([1-9]d{5})(d{4})([0-9]{2})([0-9]{2})(d{3})(d{3})(d{2})([dxX])$/';
    if (preg_match($reg, $id_card, $matches)) {
        // 校验地址码
        if (!check_address_code($matches[1])) {
            return false;
        }
        // 校验出生日期
        if (!check_birthday($matches[2] . "-" . $matches[3] . "-" . $matches[4])) {
            return false;
        }
        // 校验顺序码
        if (!check_order_code($matches[5])) {
            return false;
        }
        // 校验校验码
        if (!check_verify_code($matches[0])) {
            return false;
        }
        return true;
    }
    return false;
}

Antaranya, check_address_code, check_birthday, check_order_code, check_verify_code dan fungsi lain digunakan untuk mengesahkan ketepatan kod alamat, tarikh lahir, kod jujukan dan kod semak masing-masing dan perlu dilaksanakan mengikut spesifikasi tertentu. keadaan.

3. Ringkasan

Melalui kaedah di atas, anda boleh menggunakan ungkapan biasa PHP untuk mengesahkan ketepatan nombor ID. Perlu diingat bahawa pengesahan nombor ID bukan sahaja soal format, tetapi juga perlu mempertimbangkan sama ada kod alamat itu sah, sama ada tarikh lahir berada dalam julat yang munasabah, sama ada pengecam jantina kod jujukan mematuhi peraturan, dsb. Oleh itu, pelaksanaan kod perlu mengambil kira Banyak faktor memastikan ketepatan dan kebolehpercayaan hasil pengesahan.

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan format kad ID menggunakan ungkapan biasa PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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