Untuk senario aplikasi yang memerlukan pengesahan nombor ID, adalah amalan biasa untuk menggunakan ungkapan biasa untuk menentukan sama ada input itu sah. Golang menyediakan pakej regexp, yang boleh digunakan untuk melaksanakan operasi pemadanan ungkapan biasa. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada nombor ID input adalah sah.
1. Peraturan nombor kad pengenalan
Nombor ID terdiri daripada 18 digit dan kod semak adalah seperti berikut:
Digit 1~2: Menunjukkan Wilayah. diwakili oleh kod statistik yang ditetapkan oleh Biro Perangkaan Kebangsaan;
digit ke-3 hingga ke-4: mewakili bandar, ditentukan oleh kod wilayah dan wilayah autonomi; , Ia ditentukan oleh kod bandar, daerah dan daerah;
digit ke-7 hingga ke-14: menunjukkan tarikh lahir, contohnya:
19900907表示生于1990年9月7日
digit ke-15 hingga ke-17: menunjukkan nombor urutan, biasanya nombor ganjil
Bit 18: Menunjukkan kod semak, dijana mengikut ISO 7064:1983.MOD 11-2.
2. Gunakan ungkapan biasa untuk mengesahkan nombor ID
Dalam golang, anda boleh menggunakan ungkapan biasa untuk memadankan sama ada nombor ID mematuhi peraturan. Ungkapan biasa khusus adalah seperti berikut:
^([1-9]d{5})(19|20)d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|(3[0-1]))d{3}[0-9xX]$
di mana, ^ mewakili kedudukan permulaan rentetan padanan dan $ mewakili kedudukan akhir rentetan padanan. ([1-9]d{5}) bermaksud memadankan enam digit pertama nombor ID, iaitu kod wilayah dan bandar. (19|20)d{2} mewakili tahun lahir yang sepadan dengan nombor ID, dengan 19 dan 20 mewakili dua digit pertama tahun itu dan d{2} mewakili dua digit terakhir tahun itu. ((0[1-9])|(1[0-2])) sepadan dengan bulan, ((0-2)|(3[0-1])) sepadan dengan hari, d{3}[0- 9xX] Padankan kod jujukan dan kod semak, di mana x dan X menunjukkan bahawa kod semak boleh menjadi nombor 0-9 atau huruf X (kedua-dua huruf besar dan kecil).
Dalam golang, anda boleh menggunakan pakej regexp untuk padanan ungkapan biasa. Penggunaan khusus adalah seperti berikut:
package main import ( "fmt" "regexp" ) func main() { var id string = "110101199003079077" // 定义正则表达式 reg := `^([1-9]d{5})(19|20)d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|(3[0-1]))d{3}[0-9xX]$` // 编译正则表达式 rgx := regexp.MustCompile(reg) // 进行匹配 match := rgx.Match([]byte(id)) if match { fmt.Println("身份证号码合法") } else { fmt.Println("身份证号码非法") } }
Dalam kod di atas, id nombor kad ID pertama kali ditakrifkan, dan kemudian fungsi Compile dalam pakej regexp digunakan untuk menyusun ungkapan biasa ke dalam rgx objek biasa. Akhir sekali, panggil fungsi rgx.Match untuk memadankan nombor ID Jika perlawanan berjaya, ia akan kembali benar, jika tidak ia akan kembali palsu.
3. Ringkasan
Melalui pengenalan di atas, kita dapat melihat bahawa sangat mudah untuk menggunakan ungkapan biasa untuk mengesahkan kesahihan nombor ID dalam golang. Anda hanya perlu mentakrifkan ungkapan biasa, dan kemudian gunakan pakej regexp untuk menyusunnya menjadi objek biasa untuk dipadankan. Sudah tentu, memandangkan peraturan nombor ID mungkin mempunyai beberapa perubahan dalam senario yang berbeza, ungkapan biasa perlu dilaraskan mengikut keperluan khusus.
Atas ialah kandungan terperinci Gunakan ungkapan biasa dalam golang untuk mengesahkan sama ada input ialah nombor dokumen identiti sah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!