Ich will nur den Brief zur Aufnahme in die textbox auf vb.net
Habe ich versucht, dies zu tun, damit das Textfeld akzeptiert nur Buchstaben, aber die Validierung funktioniert nicht.
Auch wenn ich geben Sie die Anzahl der Abläufe und zeigt die ersten lblError von "Danke für Ihre Daten", wo Sie eigentlich sein sollten ", Geben Sie Einen Gültigen Namen ".
ist Ihre Validierung test ähnlich IsNumeric für diese Art von problem?
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
Ende Klasse
Und ich brauche einfache Methoden, die nichts mit [a-zA-Z0-9], oder RegEx-Muster, wie ive erforscht diese und ich kann Sie verwenden.
Danke
- Das sieht aus wie eine Hausaufgabe. Sind Sie auf der Suche nach einem Weg, um zu unterbinden, dass der Benutzer diese Eingabe, wenn so der Blick auf Ereignisse. Wenn Sie überprüfen möchten, nachdem Sie eingegeben haben, eine Möglichkeit könnte sein, zu überprüfen jedes Zeichen einzeln und sehen, ob es eine Zahl ist.
- vielleicht verwenden Sie einfach RegularExpressionValidator: msdn.microsoft.com/en-us/library/...
- Danke, aber dies ist nicht eine Hausaufgabe, im nur zu lernen, über vb.net für mich und, beginnend bei den Grundlagen,
- Die Grundlagen sind, dass entsprechend eine strinh Buchstaben ein regex ist der beste Weg. Ich kenne keine isStringLetters gebaut. Der Grund, warum wir alle sagen, regex ist, weil es ist der beste Weg, wir wissen (plus die am wenigsten Zeilen code
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie den text-string, d.h., textbox1.text, um sicherzugehen, dass es nichts außer dem alphabet-Zeichen in der .Lassen Sie Ereignis. Diese fangen einen Fehler, wenn der Benutzer mit der Tabulatortaste zum nächsten Steuerelement, zum Beispiel. Sie können dies tun, mit einem regulären Ausdruck (import-System.Text.RegularExpressions für dieses Beispiel), oder Sie können check den text "manuell."
Wenn Sie möchten, um den Benutzer zu unterbrechen, sobald eine nicht-alpha-Taste gedrückt wird, können Sie das TextChanged-Ereignis anstelle von das .Lassen Sie event.
Regex ist der sauberste Weg, dies zu tun. Allerdings fragte Sie den langen Weg...
Dies funktioniert, indem alle groß-und Kleinbuchstaben Buchstaben aus einem string hinterließ etwas anderes. Wenn wir dann sehen, wie lange
stringname.length
die Zeichenkette ist, nach der Entfernung abgeschlossen ist, und finden Sie die Zahl null ist, dann ist die überprüfung bestanden hat. Allerdings, wenn die Anzahl größer als null ist, dann wird die Zeichenfolge nicht enthalten Buchstaben.Oder, wenn Sie es wollen-Funktion-freundlich..
Warum nicht regex? Es ist das richtige Werkzeug für den job, es sei denn, Sie sind etwas verlassen aus Ihren Fragen.
Können Sie erstellen ein array mit allen Buchstaben des englischen Alphabets wie folgt aus (es ist groß), dann können Sie überprüfen, ob alle Zeichen im Namen in dem array.
Dies sollte helfen, sollte es für jeden anderen text ein, z.B. Eingabe-Felder (peudo)
textbox1.textchanged
Dim check, check2 as Boolean
check = textbox1.text wie "[A-Za-z]" ' prüft für die Buchstaben
check2 = textbox1.text wie "[0-9]" ' prüft für die nicht Buchstaben
wenn check = true und check2 = false then
Anhängen von text
elseif check = false oder check2 = true dann
dont text anfügen
hoffe es hilft
Können Sie nicht verwenden ASCII-Zeichen?
Wie diese:
, Wenn Sie nicht brauchen, zu ermöglichen, " _ " Unterstrich entfernen Sie dann die "
Or Asc(e.KeyChar) = 95
"Sie können dies leicht tun.
schau dir mal die ASCII-Tabelle Zeichen, es selbst zu tun.
Sie können die Ansicht HIER
Zunächst sollten Sie beachten, dass Sie Unicode verwenden.
Zweite, Unicode ist kompliziert. Insbesondere .NETTO-Strings in UTF-16 code-Einheiten, ein oder zwei davon Kodieren, ein codepoint. Auch einige codepoints sind "kombinierte Zeichen"—Sie können es nicht ertragen, auf Ihre eigene, aber oft erscheinen die einzeln oder vermehrt nach Buchstaben.
Unten ist die prüflogik. Es geht durch den string und prüft, ob die erste codepoint jedes text-element (aka grapheme) ist ein Unicode-Zeichen.
BTW—Sie haben einen sehr engen Blick auf, was ein name ist. Ich warf in den Raum zu brechen, ein Missverständnis; Das ist ein eindeutiger Fall. Aber im Allgemeinen, ich möchte nicht, um Benutzer zu sagen, dass ich über Ihren Namen ungültig zu sein.