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

WBOY
Lepaskan: 2023-06-24 08:50:44
asal
1529 orang telah melayarinya

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

Menjalankan kod di atas akan mengeluarkan:

1
2
3
Salin selepas log masuk
  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")
    }
}
Salin selepas log masuk
  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")
    }
}
Salin selepas log masuk

Menjalankan kod di atas akan mengeluarkan:

Name is valid
Age is valid
Salin selepas log masuk
  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")
    }
}
Salin selepas log masuk

Menjalankan kod di atas akan mengeluarkan:

Name is valid
Month is valid
Salin selepas log masuk

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!

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