Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mengesahkan parameter pertanyaan dalam URL menggunakan ungkapan biasa dalam golang

Bagaimana untuk mengesahkan parameter pertanyaan dalam URL menggunakan ungkapan biasa dalam golang

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBasal
2023-06-24 08:50:441604semak imbas

Apabila kami membangunkan aplikasi web, kami selalunya perlu mengesahkan parameter pertanyaan dalam URL. Sebagai contoh, kita mungkin perlu menyemak sama ada parameter pertanyaan mengandungi nilai yang sah atau mematuhi format tertentu. Dalam golang, kita boleh menggunakan ungkapan biasa untuk melaksanakan pengesahan ini. Dalam artikel ini, kami akan menerangkan cara menggunakan ungkapan biasa untuk mengesahkan parameter pertanyaan dalam URL.

  1. Menghuraikan parameter URL

Mula-mula, kita perlu menghuraikan parameter pertanyaan dalam URL. Dalam golang, kita boleh menggunakan fungsi ParseQuery() dalam pakej net/url untuk melaksanakan fungsi ini. Berikut ialah contoh:

package main

import (
    "fmt"
    "net/url"
)

func main() {
    u, _ := url.Parse("http://example.com/path?a=1&b=2&c=3")
    q := u.Query()
    fmt.Println(q.Get("a"))
    fmt.Println(q.Get("b"))
    fmt.Println(q.Get("c"))
}

Menjalankan kod di atas akan mengeluarkan:

1
2
3
  1. Menulis ungkapan biasa

Seterusnya, kita perlu menulis biasa ungkapan untuk mengesahkan parameter pertanyaan. Katakan kami ingin mengesahkan bahawa nilai parameter pertanyaan "nama" sepadan dengan ungkapan biasa "^[a-zA-Z]+$", iaitu, ia hanya mengandungi huruf. Kita boleh menggunakan pakej regexp dalam golang untuk menulis pengesah ungkapan biasa ini. Berikut ialah contoh:

package main

import (
    "fmt"
    "net/url"
    "regexp"
)

func validateName(name string) bool {
    reg := regexp.MustCompile("^[a-zA-Z]+$")
    return reg.MatchString(name)
}

func main() {
    u, _ := url.Parse("http://example.com/path?name=John")
    q := u.Query()
    name := q.Get("name")
    if validateName(name) {
        fmt.Println("Name is valid")
    } else {
        fmt.Println("Name is invalid")
    }
}
  1. Sahkan parameter pertanyaan dalam URL

Sekarang kita telah menulis pengesah regex, kita boleh Pengesah ini dilaksanakan untuk setiap parameter pertanyaan. Berikut ialah contoh:

package main

import (
    "fmt"
    "net/url"
    "regexp"
)

func validateName(name string) bool {
    reg := regexp.MustCompile("^[a-zA-Z]+$")
    return reg.MatchString(name)
}

func validateAge(age string) bool {
    reg := regexp.MustCompile("^[0-9]+$")
    return reg.MatchString(age)
}

func main() {
    u, _ := url.Parse("http://example.com/path?name=John&age=35")
    q := u.Query()
    name := q.Get("name")
    age := q.Get("age")
    if validateName(name) {
        fmt.Println("Name is valid")
    } else {
        fmt.Println("Name is invalid")
    }
    if validateAge(age) {
        fmt.Println("Age is valid")
    } else {
        fmt.Println("Age is invalid")
    }
}

Menjalankan kod di atas akan mengeluarkan:

Name is valid
Age is valid
  1. Ubah suai dan optimumkan pengesah

Akhir sekali, jika kita perlu mengesahkan pertanyaan Jenis parameter berubah, seperti umur berubah daripada nombor kepada sebulan, atau kami memerlukan peraturan pengesahan yang lebih ketat, kami perlu mengubah suai dan mengoptimumkan pengesah kami dengan sewajarnya. Berikut ialah contoh:

package main

import (
    "fmt"
    "net/url"
    "regexp"
)

func validateName(name string) bool {
    reg := regexp.MustCompile("^[a-zA-Z]+$")
    return reg.MatchString(name)
}

func validateMonth(month string) bool {
    reg := regexp.MustCompile("^([1-9]|1[0-2])$")
    return reg.MatchString(month)
}

func main() {
    u, _ := url.Parse("http://example.com/path?name=John&month=9")
    q := u.Query()
    name := q.Get("name")
    month := q.Get("month")
    if validateName(name) {
        fmt.Println("Name is valid")
    } else {
        fmt.Println("Name is invalid")
    }
    if validateMonth(month) {
        fmt.Println("Month is valid")
    } else {
        fmt.Println("Month is invalid")
    }
}

Menjalankan kod di atas akan mengeluarkan:

Name is valid
Month is valid

Jika peraturan pengesahan untuk parameter pertanyaan lebih kompleks, kita boleh menggunakan ungkapan biasa untuk mengesahkannya atau menggunakan kaedah lain seperti Pengesahan songsang atau padanan corak. Tidak kira bagaimana kami melaksanakan pengesah, kami perlu memastikan bahawa aplikasi web kami boleh berjalan dengan selamat dan boleh dipercayai.

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan parameter pertanyaan dalam URL menggunakan ungkapan biasa dalam golang. 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