Golang は言語として、データの検証と処理を容易にする多くの方法を提供します。その中でも入力が英字かどうかの検証は基本的な機能ですが、この記事ではこの機能をGolangで実装する2つの方法を紹介します。
正規表現とは、テキストの断片と一致する表現です。 Golang では、標準ライブラリの regexp パッケージを使用して、正規表現を処理および照合できます。以下は、入力が英語の文字であるかどうかを検証するコード例です。
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)) }
この例では、正規表現 ^[a-zA-Z] $
を使用して文字のみに一致します。大文字と小文字の文字列を含む。 IsAlpha
関数では、MatchString
メソッドを呼び出します。このメソッドは、正規表現文字列と一致する必要がある文字列の 2 つのパラメータを受け取ります。このメソッドは、文字列が正規表現の規則に従っている場合、つまり大文字と小文字のみが含まれている場合は true を返し、それ以外の場合は false を返します。
上記のコードの出力は次のとおりです:
abcXYZ true abc123 false
この方法の欠点は、検証する必要がある文字列が非常に長い場合、または検証の頻度が高い場合、正規表現は毎回呼び出されます。マッチング方法には時間がかかります。この状況を回避するための別の検証方法を次に示します。
ASCII コード テーブルは文字を表すために使用されるエンコード方式で、英文字のエンコード範囲は A ~ Z および a ~ z です。 Golang の unicode/utf8 パッケージは、このエンコーディングの文字を処理するためのいくつかの関数を提供します。入力文字が ASCII コード テーブル内の文字のみであることがわかっている場合は、次のコードを使用して、入力が英語の文字であるかどうかを確認できます。
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)) }
この例では、 unicode パッケージ 入力された文字が文字であるかどうかを判定するメソッド。文字が文字の場合は true、それ以外の場合は false を返します。
以上がgolangで入力が英字かどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。