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

PHPz
Lepaskan: 2023-06-24 08:49:00
asal
827 orang telah melayarinya

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

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

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("输入不是有效的身份证号码")
    }
}
Salin selepas log masuk

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!

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