C# - zone de texte avec uniquement des lettres et des chiffres
Comment puis-je limiter ma zone de texte pour accepter uniquement des chiffres et des lettres?
Il ne devrait même pas permettre à des espaces ou quelque chose comme "!", "?", "/" et ainsi de suite.
Seulement a-z, A-Z, 0-9
Essayé et ça ne fonctionne pas à tous les
if (System.Text.RegularExpressions.Regex.IsMatch(@"^[a-zA-Z0-9\_]+", txtTag.Text))
{
txtTag.Text.Remove(txtTag.Text.Length - 1);
}
Même pas sûr si c' txtTag.Text.Remove(txtTag.Text.Length - 1);
devrait être là parce qu'il fait le plantage de l'application.
- Vous avez à gérer des événements de pression de touche. Si vous le faites, il ne sera pas mauvais caractères dans la zone de texte.
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de regex pour que:
Cela permettra d'éliminer tout ce qui n'est pas une lettre ou un chiffre, et peut être placé dans l'événement TextChanged. Fondamentalement, il obtient le texte, la divise en caractères et ne prendre qu'est ce qu'une lettre ou un chiffre. Après cela, on peut concaténer à dos une chaîne de caractères.
Aussi, si vous souhaitez placer le curseur à la fin de la zone de texte (parce que changer le texte de réinitialiser sa position à 0), vous pouvez également ajouter
textBox1.SelectionStart = textBox1.Text.Length + 1;
Ma pensée est que vous pourriez modifier la KeyPressed ou TextChanged événements de cette commande pour vérifier si les caractères sont des chiffres ou des lettres. Par exemple, pour vérifier les personnages comme ils sont ajoutés dans la zone de texte que vous pourriez faire quelque chose comme ce qui suit :
essayer cette
Tout d'abord, découvrez cet article pour obtenir certaines informations.
Je pense que vous devriez le faire sur le côté client est d'ajouter la
pattern
attribut dans le code HTML correspondant.<input type="text" name="foo" pattern="[a-zA-Z0-9_]" title="Please input only letters and numbers">