Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada input ialah kod negara ISO 3166-1 Alpha-2 yang sah

Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada input ialah kod negara ISO 3166-1 Alpha-2 yang sah

WBOY
WBOYasal
2023-06-25 10:09:07989semak imbas

Dalam golang, ungkapan biasa boleh digunakan untuk mengesahkan format nilai input dengan mudah, termasuk mengesahkan kesahihan kod negara ISO 3166-1 Alpha-2.

Kod negara ISO 3166-1 Alpha-2 ialah pengekodan standard yang ditakrifkan dalam piawaian antarabangsa ISO 3166 Ia menggunakan dua huruf untuk mewakili kod unik setiap negara/rantau Contohnya, kod China ialah "CN". untuk Amerika Syarikat ialah "AS". Mengesahkan bahawa input ialah kod negara ISO 3166-1 Alpha-2 memerlukan mematuhi peraturan tertentu, termasuk:

  1. mesti terdiri daripada dua huruf besar
  2. mesti huruf Latin
  3. adalah sensitif; Tiada kod pendua.
  4. Di golang, kod negara ISO 3166-1 Alpha-2 boleh disahkan dengan bantuan ungkapan biasa. Ungkapan biasa yang mudah adalah seperti berikut:
^[A-Z]{2}$

Maksud ungkapan biasa ini adalah seperti berikut:

bermula dengan ^ dan berakhir dengan $, yang bermaksud bahawa keseluruhan nilai input mesti memenuhi syarat ini
  1. [A-Z]{ 2} bermakna ia mesti terdiri daripada dua Ia terdiri daripada huruf besar (A-Z) 2 dalam kurungan kerinting menunjukkan bahawa panjang mestilah 2 aksara.
  2. Seterusnya, kami boleh mengesahkan sama ada nilai input mematuhi ungkapan biasa dengan menggunakan fungsi yang disediakan oleh pakej regexp dalam golang Kod sampel adalah seperti berikut:
package main

import (
    "fmt"
    "regexp"
)

func main() {
    input := "CN"

    // 编译正则表达式
    regex := regexp.MustCompile("^[A-Z]{2}$")

    // 验证输入值是否符合正则表达式
    if !regex.MatchString(input) {
        fmt.Printf("%s不是一个有效的ISO 3166-1 Alpha-2国家/地区代码
", input)
    } else {
        fmt.Printf("%s是一个有效的ISO 3166-1 Alpha-2国家/地区代码
", input)
    }
}

Dalam kod ini, kami mula-mula menentukan input nilai input. , dan Susun ungkapan biasa ^[A-Z]{2}$ kepada regex. Seterusnya, kami menggunakan fungsi regex.MatchString(input) untuk mengesahkan sama ada nilai input sepadan dengan ungkapan biasa. Jika ia tidak sepadan, mesej ralat akan dikeluarkan jika ia sepadan, mesej kejayaan akan dikeluarkan.

Apabila menggunakan ungkapan biasa untuk pengesahan, anda juga perlu memberi perhatian kepada beberapa kes khas, seperti: regex.MatchString(input)函数来验证输入值是否符合正则表达式。如果不符合,输出一条错误信息;如果符合,输出一条成功信息。

在使用正则表达式进行验证时,还需要注意一些特殊情况,例如:

  1. 忽略大小写:如果需要忽略大小写,可以使用(?i)在正则表达式开头进行设置,示例代码如下:
regex := regexp.MustCompile("(?i)^[a-z]{2}$")

这里的(?i)

    Abaikan kes: Jika anda perlu mengabaikan kes, anda boleh menggunakan (?i) dalam ungkapan biasa Tetapkan pada permulaan, kod sampel adalah seperti berikut:
  1. package main
    
    import (
        "fmt"
        "regexp"
    )
    
    func main() {
        input := "CN"
        codes := []string{"CN", "US", "JP"} // 已有的ISO 3166-1 Alpha-2国家/地区代码
    
        // 判断输入值是否已存在
        for _, code := range codes {
            if input == code {
                fmt.Printf("%s是一个重复的ISO 3166-1 Alpha-2国家/地区代码
    ", input)
                return
            }
        }
    
        // 编译正则表达式
        regex := regexp.MustCompile("^[A-Z]{2}$")
    
        // 验证输入值是否符合正则表达式
        if !regex.MatchString(input) {
            fmt.Printf("%s不是一个有效的ISO 3166-1 Alpha-2国家/地区代码
    ", input)
        } else {
            fmt.Printf("%s是一个有效的ISO 3166-1 Alpha-2国家/地区代码
    ", input)
        }
    }
(?i) di sini bermaksud mengabaikan kes.

🎜Elakkan kod pendua: Kod negara ISO 3166-1 Alpha-2 tidak membenarkan kod pendua. Untuk mengelakkan kod pendua, kami boleh menyimpan kod sedia ada dalam tatasusunan atau peta Setiap kali kami menggunakan pengesahan ungkapan biasa, kami mula-mula menentukan sama ada nilai input berada dalam tatasusunan atau peta bukan kod negara ISO 3166 -1 Alpha-2 yang sah. Kod sampel adalah seperti berikut: 🎜🎜rrreee🎜Dalam kod sampel ini, kami mula-mula mentakrifkan tatasusunan kod negara ISO 3166-1 Alpha-2 sedia ada dan menggunakan gelung untuk melelaran melalui setiap elemen dalam tatasusunan. Jika nilai input sudah wujud dalam tatasusunan, ini bermakna ia bukan kod negara ISO 3166-1 Alpha-2 yang sah jika nilai input tidak wujud dalam tatasusunan, teruskan menggunakan ungkapan biasa untuk pengesahan. 🎜

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa dalam golang untuk mengesahkan sama ada input ialah kod negara ISO 3166-1 Alpha-2 yang sah. 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