Maison >développement back-end >Golang >Comment vérifier si l'entrée est constituée de lettres anglaises dans Golang

Comment vérifier si l'entrée est constituée de lettres anglaises dans Golang

WBOY
WBOYoriginal
2023-06-24 08:36:061250parcourir

En tant que langage, Golang propose de nombreuses méthodes pour faciliter la vérification et le traitement de nos données. Parmi eux, vérifier si l'entrée est constituée de lettres anglaises est une fonction de base. Cet article présentera deux façons d'implémenter cette fonction dans Golang.

1. Utilisez des expressions régulières

Une expression régulière est une expression qui peut correspondre à des fragments de texte. Dans Golang, nous pouvons utiliser le package regexp dans la bibliothèque standard pour traiter et faire correspondre les expressions régulières. Voici un exemple de code pour vérifier si l'entrée est constituée de lettres anglaises :

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))
}

Dans cet exemple, nous utilisons l'expression régulière ^[a-zA-Z]+$ pour faire correspondre les chaînes contenant uniquement des lettres majuscules et minuscules. Dans la fonction IsAlpha, nous appelons la méthode MatchString, qui accepte deux paramètres : une chaîne d'expression régulière et une chaîne à mettre en correspondance. Cette méthode renvoie vrai si la chaîne est conforme aux règles de l'expression régulière, c'est-à-dire qu'elle ne contient que des lettres majuscules et minuscules, sinon elle renvoie faux. ^[a-zA-Z]+$ 来匹配只包含大写和小写字母的字符串。在 IsAlpha 函数中,我们调用了 MatchString 方法,该方法接受两个参数:一个正则表达式字符串和一个需要匹配的字符串。如果字符串符合正则表达式的规则,即仅包含大小写字母,则该方法返回 true,否则返回 false。

上述代码的输出如下:

abcXYZ true
abc123 false

这种方法的缺点是,如果需要验证的字符串很长或者需要验证的频率很高,则每次都调用正则表达式的匹配方法会比较耗时。下面介绍另一种验证方式,可以避免这种情况。

2. 使用 ASCII 码表

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 包中的 IsLetter

Le résultat du code ci-dessus est le suivant :

rrreee

L'inconvénient de cette méthode est que si la chaîne à vérifier est très longue ou la fréquence de vérification est élevé, il le sera. L'appel de la méthode de correspondance d'expression régulière peut prendre beaucoup de temps. Voici une autre méthode de vérification pour éviter cette situation.

2. Utilisez la table de codes ASCII #🎜🎜##🎜🎜#La table de codes ASCII est une méthode de codage utilisée pour représenter des caractères, où la plage de codage des lettres anglaises est A-Z et a-z. Le package unicode/utf8 de Golang fournit certaines fonctions pour gérer les caractères dans cet encodage. Si nous savons que les caractères saisis ne sont que des caractères de la table de codes ASCII, nous pouvons utiliser le code suivant pour vérifier si l'entrée est constituée de lettres anglaises : #🎜🎜#rrreee#🎜🎜#Dans cet exemple, nous utilisons le IsLetter pour déterminer si le caractère saisi est une lettre. Renvoie vrai si le caractère est une lettre, faux sinon. #🎜🎜##🎜🎜#L'avantage de cette méthode est qu'elle est plus efficace que les expressions régulières car elle ne nécessite pas de construire un arbre d'analyse d'expression régulière ni de correspondance. L'inconvénient est que si la chaîne d'entrée contient des caractères qui ne figurent pas dans la table de codes ASCII, les résultats risquent de ne pas être ceux attendus. #🎜🎜##🎜🎜#En général, l'utilisation d'expressions régulières ou de tables de codes ASCII sont des moyens réalisables pour réaliser cette fonction. Dans les applications pratiques, nous devons prendre en compte la longueur et la complexité de la chaîne d’entrée ainsi que la fréquence de vérification pour choisir une implémentation appropriée. #🎜🎜#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn