ユーザー名にアルファベット文字のみが含まれているかどうかを確認しようとしています。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
}