Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mengesahkan sama ada input adalah huruf Inggeris dalam golang
Sebagai bahasa, Golang menyediakan banyak kaedah untuk memudahkan pengesahan dan pemprosesan data kami. Antaranya, mengesahkan sama ada input adalah huruf Inggeris adalah fungsi asas Artikel ini akan memperkenalkan dua cara untuk melaksanakan fungsi ini di Golang.
Ungkapan biasa ialah ungkapan yang boleh memadankan serpihan teks. Di Golang, kita boleh menggunakan pakej regexp dalam perpustakaan standard untuk memproses dan memadankan ungkapan biasa. Berikut ialah contoh kod yang mengesahkan bahawa input ialah huruf Inggeris:
import ( "fmt" "regexp" ) func IsAlpha(data string) bool { match, _ := regexp.MatchString("^[a-zA-Z]+$", data) return match } func main() { str1 := "abcXYZ" // 合法的字母输入 str2 := "abc123" // 非法的字母输入 fmt.Println(str1, IsAlpha(str1)) fmt.Println(str2, IsAlpha(str2)) }
Dalam contoh ini, kami menggunakan ungkapan biasa ^[a-zA-Z]+$
untuk memadankan rentetan yang hanya mengandungi huruf besar dan huruf kecil. Dalam fungsi IsAlpha
, kami memanggil kaedah MatchString
, yang menerima dua parameter: rentetan ungkapan biasa dan rentetan yang perlu dipadankan. Kaedah ini mengembalikan benar jika rentetan mematuhi peraturan ungkapan biasa, iaitu, ia mengandungi hanya huruf besar dan huruf kecil, jika tidak ia mengembalikan palsu.
Keluaran kod di atas adalah seperti berikut:
abcXYZ true abc123 false
Kelemahan kaedah ini ialah jika rentetan yang perlu disahkan sangat panjang atau kekerapan pengesahan tinggi, ungkapan biasa akan dipanggil setiap kali Kaedah pemadanan akan lebih memakan masa. Berikut ialah kaedah pengesahan lain untuk mengelakkan situasi ini.
Jadual kod ASCII ialah kaedah pengekodan yang digunakan untuk mewakili aksara, di mana julat pengekodan huruf Inggeris ialah A-Z dan a-z. Pakej unicode/utf8 dalam Golang menyediakan beberapa fungsi untuk mengendalikan aksara dalam pengekodan ini. Jika kita tahu bahawa aksara input hanyalah aksara dalam jadual kod ASCII, kita boleh menggunakan kod berikut untuk mengesahkan sama ada input adalah huruf Inggeris:
import ( "fmt" "unicode" ) func IsAlpha(data string) bool { for _, c := range data { if !unicode.IsLetter(c) { return false } } return true } func main() { str1 := "abcXYZ" // 合法的字母输入 str2 := "abc123" // 非法的字母输入 fmt.Println(str1, IsAlpha(str1)) fmt.Println(str2, IsAlpha(str2)) }
Dalam contoh ini, kami menggunakan kaedah IsLetter
dalam pakej unicode Untuk menentukan sama ada aksara input ialah huruf. Mengembalikan benar jika aksara ialah huruf, sebaliknya palsu.
Kelebihan kaedah ini ialah ia lebih cekap daripada ungkapan biasa kerana ia tidak memerlukan membina pokok parse ungkapan biasa dan padanan. Kelemahannya ialah jika rentetan input mengandungi aksara yang tiada dalam jadual kod ASCII, hasilnya mungkin tidak seperti yang diharapkan.
Secara amnya, menggunakan ungkapan biasa atau jadual kod ASCII adalah cara yang boleh dilaksanakan untuk mencapai fungsi ini. Dalam aplikasi praktikal, kita perlu mempertimbangkan panjang dan kerumitan rentetan input dan kekerapan pengesahan untuk memilih pelaksanaan yang sesuai.
Atas ialah kandungan terperinci Bagaimana untuk mengesahkan sama ada input adalah huruf Inggeris dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!