Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan ungkapan biasa dalam php untuk memadankan hanya kad ID

Cara menggunakan ungkapan biasa dalam php untuk memadankan hanya kad ID

PHPz
PHPzasal
2023-03-21 19:12:331450semak imbas

Ungkapan biasa ialah alat yang biasa digunakan dalam atur cara Ia boleh menggunakan satu siri peraturan untuk memadankan dan mengubah suai teks. Dalam PHP, penggunaan ungkapan biasa adalah sangat penting, terutamanya digunakan untuk pemadanan rentetan, penggantian dan operasi pengekstrakan.

Antara semua ungkapan biasa, padanan nombor kad pengenalan ialah masalah klasik. Dalam PHP, kita boleh memadankan nombor ID melalui satu siri ungkapan biasa.

Pertama sekali, kita perlu memahami struktur nombor ID. Menurut piawaian kebangsaan "Nombor Identiti Warganegara" (GB 11643-1999), nombor ID mempunyai 18 digit kesemuanya 17 digit pertama ialah kod kawasan dan kod tarikh lahir, dan digit ke-18 ialah kod semak.

Antaranya, 6 digit pertama ialah kod wilayah, termasuk singkatan wilayah, wilayah autonomi dan majlis perbandaran secara langsung di bawah Kerajaan Pusat. Angka ke-7 hingga ke-14 ialah kod tarikh, bulan dan hari lahir dalam format YYYYMMDD. Angka ke-15 hingga ke-17 ialah nombor siri, iaitu nombor siri orang yang lahir pada hari yang sama di kawasan yang sama Nombor ganjil dalam digit ke-17 menunjukkan lelaki, dan nombor genap menunjukkan perempuan. Digit terakhir ialah kod semak, iaitu nombor yang dikira mengikut piawaian kebangsaan.

Mengikut struktur nombor ID, kita boleh menulis ungkapan biasa PHP berikut:

$pattern = '/^([1-9]\d{5})(19\d{2}|20\d{2})(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i';

Dalam ungkapan biasa di atas:

  • ^ bermaksud Mulakan padanan dengan ungkapan biasa ini
  • () mewakili kumpulan
  • [1-9] mewakili sebarang nombor dari 1 hingga 9
  • d mewakili sebarang nombor, Bersamaan dengan [0 -9]
  • {5} bermaksud elemen sebelumnya harus diulang 5 kali
  • | bermakna atau
  • [12] bermaksud 1 atau 2
  • $ menunjukkan bahawa padanan berakhir dengan ungkapan biasa ini
  • i menunjukkan bahawa ia tidak sensitif huruf besar/kecil

Padanan kod semak terakhir adalah istimewa. Kerana ia mungkin berakhir dengan X, kami menggunakan (d|X) untuk mewakilinya.

Gunakan fungsi preg_match untuk memadankan nombor ID adalah seperti berikut:

$pattern = '/^([1-9]\d{5})(19\d{2}|20\d{2})(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i';
$id_card = '11010119880101001X';
if (preg_match($pattern, $id_card)) {
   echo '匹配成功';
} else {
   echo '匹配失败';
}

Dalam contoh ini, dua pembolehubah $pattern dan $id_card dihantar sebagai parameter kepada fungsi preg_match. . Jika perlawanan berjaya, "match successful" akan dikeluarkan, jika tidak "match failed" akan dikeluarkan.

Ringkasnya, ungkapan biasa PHP ialah alat yang sangat berkuasa yang boleh digunakan untuk memadankan rentetan kompleks seperti nombor ID. Melalui artikel ini, anda harus menguasai cara menggunakan ungkapan biasa untuk memadankan nombor ID dalam PHP.

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa dalam php untuk memadankan hanya kad ID. 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