Je veux seulement la lettre pour être accepté dans la zone de texte sur vb.net
Ive essayé de le faire, de sorte que la zone de texte accepte uniquement les lettres, mais la validation ne fonctionne pas.
Même quand je entrer des numéros, il la traite et affiche la première lblError de "Merci pour vos détails", où il devrait être "Entrer Un Nom Valide ".
leur sont des essais de validation similaire à IsNumeric pour ce type de problème?
plz help
Dim MyName As String
If txtMyName.Text Then
MyName = txtMyName.Text
lblError.Text = "Thankyou for your details"
Else
lblError.Text = "Enter A Valid Name "
End If
End Sub
Fin De La Classe
Et j'ai besoin de l'aide de méthodes simples, rien à [a-zA-Z0-9], ou de modèles RegEx, que ive fait des recherches et je ne peut pas les utiliser.
Merci
- Cela ressemble à un travail à la maison. Vous êtes à la recherche d'un moyen d'empêcher l'utilisateur d'entrer, si c'est le cas regarder les événements. Si vous souhaitez valider après avoir entré une façon peut être de vérifier chaque personnage individuellement et de voir si c'est un nombre.
- peut-être juste utiliser RegularExpressionValidator: msdn.microsoft.com/en-us/library/...
- Merci, mais ce n'est pas un devoir à la maison, je suis tout à fait d'apprentissage sur vb.net pour moi-même et à partir de la base,
- Le principe de base est que, pour correspondre à une strinh de lettres d'une expression régulière est le meilleur moyen. Je ne sais pas du tout isStringLetters construit en. La raison pour laquelle nous sommes tous en disant regex est parce que c'est la meilleure façon pour nous de savoir (plus le moins de lignes de code
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vérifier la chaîne de texte, c'est à dire, textbox1.texte, pour s'assurer qu'il n'a rien en plus de lettres de l'alphabet dans l' .Laisser événement. Cela permettra de rattraper une erreur lorsque l'utilisateur onglets à la commande suivante, par exemple. Vous pouvez le faire à l'aide d'une expression régulière (Système d'importation.Texte.RegularExpressions pour cet exemple), ou vous pouvez vérifier le texte "manuellement".
Si vous voulez arrêter de l'utilisateur dès qu'un non-alpha touche est enfoncée, vous pouvez utiliser l'événement TextChanged à la place de la .Laisser événement.
Regex est la façon la plus propre de le faire. Or vous avez demandé le chemin le plus long...
Cela fonctionne en supprimant toutes les lettres minuscules et majuscules d'une chaîne de caractères, laissant derrière autre chose. Si l'on puis voir combien de temps
stringname.length
la chaîne est après la suppression est terminée, et trouver le nombre est zéro, alors la validation a passé. Toutefois, si le nombre est supérieur à zéro, alors notre chaîne contenue non lettres de l'alphabet.Ou si vous le souhaitez la fonction identifiés..
Pourquoi ne pas les regex? C'est le bon outil pour le travail, sauf si vous êtes en laissant quelque chose de vos questions.
Vous pouvez construire un tableau de tous les anglais ce genre de lettres (il s'agit d'une majuscule), alors vous pouvez vérifier si tous les caractères dans le nom est dans le tableau.
Cela devrait aider, il doit travailler pour n'importe quel autre texte intrants, tels que les boîtes de saisie (peudo)
textbox1.textchanged
Dim vérifier, check2 as Boolean
check = textbox1.un texte comme "[A-Za-z]" " vérifications pour les lettres
check2 = textbox1.un texte comme "[0-9]" ' vérifie pas les lettres
si check = true et check2 = faux alors
ajouter du texte
elseif check = false ou check2 = vrai alors
ne pas ajouter du texte
espère que cela aide
Ne pouvez-vous pas utiliser les Caractères ASCII?
Comme ceci:
Si vous N'avez pas besoin de permettre de soulignement"_", puis supprimer le "
Or Asc(e.KeyChar) = 95
"Vous pouvez le faire facilement.
vous devriez regarder les Caractères ASCII Table pour le faire vous-même.
Vous pouvez consulter le tableau ICI
D'abord, vous devez savoir que vous êtes à l'aide de l'Unicode.
Deuxième, Unicode est compliqué. En particulier, .NET les Chaînes de l'utilisation de code UTF-16 unités, un ou deux de qui codent pour une codepoint. Aussi, certains codepoints sont "en combinant les caractères"—ils ne peuvent pas se tenir debout sur leur propre, mais souvent apparaissent seuls ou en se multiplie après les lettres.
Ci-dessous est la logique de validation. Il va par la chaîne, et vérifie que la première codepoint de chaque élément de texte (aka graphème) est une lettre Unicode.
BTW—Vous avez une vision étroite de ce qu'un nom est. J'ai jeté dans un espace de pause d'une idée fausse; C'est un cas évident. Mais, en général, je ne voudrais pas dire aux utilisateurs que je considère comme leur nom invalide.