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
Lepaskan: 2023-06-24 14:18:01
asal
1483 orang telah melayarinya

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

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])$/
Salin selepas log masuk

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

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!

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