Go で文字列にアルファベット文字のみが含まれているかどうかを確認するにはどうすればよいでしょうか? 質問する

Go で文字列にアルファベット文字のみが含まれているかどうかを確認するにはどうすればよいでしょうか? 質問する

ユーザー名にアルファベット文字のみが含まれているかどうかを確認しようとしています。Go で確認する慣用的な方法は何ですか?

ベストアンサー1

使用することができますunicode.IsLetter次の動作するサンプルコードのように:

package main

import "fmt"
import "unicode"

func IsLetter(s string) bool {
    for _, r := range s {
        if !unicode.IsLetter(r) {
            return false
        }
    }
    return true
}
func main() {
    fmt.Println(IsLetter("Alex")) // true
    fmt.Println(IsLetter("123"))  // false
}

または、範囲が限られている場合(例:'a'..'z' および 'A'..'Z')は、次の実用的なサンプル コードを使用できます。

package main

import "fmt"

func IsLetter(s string) bool {
    for _, r := range s {
        if (r < 'a' || r > 'z') && (r < 'A' || r > 'Z') {
            return false
        }
    }
    return true
}
func main() {
    fmt.Println(IsLetter("Alex"))  // true
    fmt.Println(IsLetter("123 a")) // false

}

または、範囲が限られている場合(例:'a'..'z' および 'A'..'Z')は、次の実用的なサンプル コードを使用できます。

package main

import "fmt"
import "regexp"

var IsLetter = regexp.MustCompile(`^[a-zA-Z]+$`).MatchString

func main() {
    fmt.Println(IsLetter("Alex")) // true
    fmt.Println(IsLetter("u123")) // false
}

おすすめ記事