Comment vérifier si une chaîne ne contient que des caractères alphabétiques en Aller?
Je suis en train de vérifier le nom d'utilisateur de savoir si c'est seulement contenant des caractères alphabétiques. Qu'est-ce que le idiomatiques moyen de le vérifier en Aller?
vous pouvez utiliser unicode.IsLetter comme ce travail exemple de code:
package main
import"fmt"import"unicode"
func IsLetter(s string)bool{for _, r := range s {if!unicode.IsLetter(r){returnfalse}}returntrue}
func main(){
fmt.Println(IsLetter("Alex"))//true
fmt.Println(IsLetter("123"))//false}
ou si vous avez une plage limitée, par exemple, 'a'..'z' et 'A'..'Z', vous pouvez utiliser ce code exemple:
package main
import"fmt"
func IsLetter(s string)bool{for _, r := range s {if(r <'a'|| r >'z')&&(r <'A'|| r >'Z'){returnfalse}}returntrue}
func main(){
fmt.Println(IsLetter("Alex"))//true
fmt.Println(IsLetter("123 a"))//false}
ou si vous avez une plage limitée, par exemple, 'a'..'z' et 'A'..'Z', vous pouvez utiliser ce code exemple:
package main
import"fmt"import"regexp"varIsLetter= regexp.MustCompile(`^[a-zA-Z]+$`).MatchString
func main(){
fmt.Println(IsLetter("Alex"))//true
fmt.Println(IsLetter("u123"))//false}
Est-il une bibliothèque qui fournissent un ensemble de fonctions pour les chaînes de vérification? pour n'en nommer que quelques-uns: des chaînes, de l'esf, regexp, strconv, unicode, les caractères unicode/utf-8, unicode/utf16, chemin/chemin du fichier, net/url octets, bufio, de l'encodage/json, le temps, ... (Librement) citation Rob Pike: "Un peu de la copie est meilleure que un peu plus de la dépendance". Pourquoi il n'est pas une collection de string-le contrôle des fonctions standard lib ou github, de sorte que nous pouvons appeler directement ces fonctions en une seule ligne? Aussi utile de savoir qu'un personnage peut être converti à une rune avec une conversion de type unicode.IsLetter(rune('a'))
En supposant que vous êtes seulement à la recherche de lettres ascii, vous devez normalement voir cette œuvre comme une expression régulière à l'aide de l'alpha de la classe de caractères [[:alpha:]] ou l'équivalent [A-Za-z]
isAlpha := regexp.MustCompile(`^[A-Za-z]+$`).MatchStringfor _, username := range []string{"userone","user2","user-three"}{if!isAlpha(username){
fmt.Printf("%q is not valid\n", username)}}
vous pouvez utiliser
unicode.IsLetter
comme ce travail exemple de code:ou si vous avez une plage limitée, par exemple, 'a'..'z' et 'A'..'Z', vous pouvez utiliser ce code exemple:
ou si vous avez une plage limitée, par exemple, 'a'..'z' et 'A'..'Z', vous pouvez utiliser ce code exemple:
pour n'en nommer que quelques-uns: des chaînes, de l'esf, regexp, strconv, unicode, les caractères unicode/utf-8, unicode/utf16, chemin/chemin du fichier, net/url octets, bufio, de l'encodage/json, le temps, ...
(Librement) citation Rob Pike: "Un peu de la copie est meilleure que un peu plus de la dépendance".
Pourquoi il n'est pas une collection de string-le contrôle des fonctions standard lib ou github, de sorte que nous pouvons appeler directement ces fonctions en une seule ligne?
Aussi utile de savoir qu'un personnage peut être converti à une rune avec une conversion de type
unicode.IsLetter(rune('a'))
OriginalL'auteur
Voici la façon dont je le ferais:
é
est un caractère alphabétique.OriginalL'auteur Tom Cleveland
En supposant que vous êtes seulement à la recherche de lettres ascii, vous devez normalement voir cette œuvre comme une expression régulière à l'aide de l'alpha de la classe de caractères
[[:alpha:]]
ou l'équivalent[A-Za-z]
https://play.golang.org/p/lT9Fki7tt7
OriginalL'auteur JimB