2016-07-24 24 views
3

ユーザー名を確認する際に、英字のみが含まれているかどうかを確認しようとしています。 Goでそれをチェックする慣用方法は何ですか?文字列にGoのアルファベット文字のみが含まれているかどうかを確認するにはどうすればよいですか?

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 
} 

またはあなたが限られている場合、範囲例えば:あなたはこのワーキングサンプルコードのようなunicode.IsLetterを使用することができ

答えて

16

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」は、この作業のサンプルコードを使用することができます'' .. '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 
} 
+0

文字列チェックを行うための一連の関数を提供するライブラリはありますか? – Casper

+1

@CasperLI:文字列、fmt、regexp、strconv、unicode、unicode/utf8、unicode/utf16、パス/ファイルパス、net/url、バイト、bufio、encoding/json、time ... –

+2

@ CasperLI(自由に)ロブ・パイクを引用する:「ちょっとしたコピーは、もう少し依存関係よりも優れている」 –

2

は、ここで私はそれを行うだろう方法です:

と仮定すると、
import "strings" 

const alpha = "abcdefghijklmnopqrstuvwxyz" 

func alphaOnly(s string) bool { 
    for _, char := range s { 
     if !strings.Contains(alpha, strings.ToLower(string(char))) { 
     return false 
     } 
    } 
    return true 
} 
+1

'é'は英字です。 – dolmen

3

あなただけのASCII文字を探している、あなたは通常、これはアルファ文字クラス[[:alpha:]]または同等[A-Za-z]

isAlpha := regexp.MustCompile(`^[A-Za-z]+$`).MatchString 

for _, username := range []string{"userone", "user2", "user-three"} { 
    if !isAlpha(username) { 
     fmt.Printf("%q is not valid\n", username) 
    } 
} 

https://play.golang.org/p/lT9Fki7tt7

を使用して、正規表現として実装見るでしょう
関連する問題