Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada input ialah nombor ID penduduk tanah besar China

Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada input ialah nombor ID penduduk tanah besar China

PHPz
PHPzasal
2023-06-24 08:49:00819semak imbas

Di Golang, menggunakan ungkapan biasa untuk mengesahkan sama ada input ialah nombor ID pemastautin Tanah Besar China boleh dicapai dengan menggunakan fungsi pemadanan ungkapan biasa MatchString() dalam ekspres perpustakaan ungkapan biasa yang dibina dalam bahasa Go.

Nombor kad pengenalan penduduk Tanah Besar China terdiri daripada 18 digit dan huruf; 17 digit pertama ialah kod kawasan dan tarikh lahir, dan digit terakhir ialah kod semakan. Untuk mengesahkan sama ada input ialah nombor ID yang sah, ia perlu disahkan sama ada ia memenuhi keperluan format nombor ID.

Berikut ialah ungkapan biasa asas, digunakan untuk memadankan sama ada input memenuhi keperluan format nombor ID:

^([1-9]\d{5})(\d{4})(0[1-9]|1[0-2])([0-2][1-9]|[1-3]\d|4[0-6]|5[0-2])(\d{3})(\d|[Xx])$

Di mana, ^ mewakili permulaan rentetan input, $ mewakili rentetan input Pada penghujung, () menunjukkan bahagian berikut untuk dipadankan.

  • [1-9]d{5}: Menunjukkan kod kawasan wilayah (digit 1-6), digit pertama mestilah nombor dari 1 hingga 9 dan 5 digit seterusnya boleh sebarang nombor.
  • d{4}: Menunjukkan tahun lahir (ke-7-10).
  • (0[1-9]|1[0-2]): Menunjukkan bulan kelahiran (digit ke-11-12), iaitu, ia mestilah nombor dari 01 hingga 12.
  • (0-2|[1-3]d|4[0-6]|5[0-2]): Menunjukkan tarikh lahir (angka ke-13-14), iaitu mesti jadi nombor 01~31.
  • d{3}: Menunjukkan nombor urutan peribadi (digit 15-17), iaitu nombor 3 digit yang diberikan secara rawak.
  • (d|[Xx]): Menunjukkan kod semak (angka ke-18), yang boleh menjadi nombor atau huruf besar "X".

Tulis ungkapan biasa di atas ke dalam kod:

func isIDCardNumber(str string) bool {
    regIDCard := "^([1-9]\d{5})(\d{4})(0[1-9]|1[0-2])([0-2][1-9]|[1-3]\d|4[0-6]|5[0-2])(\d{3})(\d|[Xx])$"
    reg := regexp.MustCompile(regIDCard)
    return reg.MatchString(str)
}

Dalam kod di atas, gunakan kaedah Regexp.MustCompile() untuk menyusun ungkapan biasa ke dalam contoh Regexp, dan kemudian gunakan kaedah reg .MatchString() untuk memadankan rentetan input.

Akhir sekali, gunakan fungsi ini dalam program untuk mengesahkan sama ada input ialah nombor ID yang sah:

func main() {
    idCardNumber := "411281199601017891" // 合法身份证号码
    if isIDCardNumber(idCardNumber) {
        fmt.Println("输入是有效的身份证号码")
    } else {
        fmt.Println("输入不是有效的身份证号码")
    }
}

Ringkasnya, gunakan ungkapan biasa dalam Golang untuk mengesahkan nombor ID penduduk tanah besar China, yang boleh memastikan kesahihan dan ketepatan input dan meletakkan asas yang kukuh untuk membangunkan aplikasi yang lebih lengkap.

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada input ialah nombor ID penduduk tanah besar China. 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