Überprüfen Sie für Besondere Charaktere sind nicht erlaubt in C#
Habe ich zum überprüfen eines Textfeldes aus einer Liste von Sonderzeichen, die nicht erlaubt sind.
Diese alle sind nicht erlaubte Zeichen.
"&";"\";"/";"!";"%";"#";"^";"(";")";"?";"|";"~";"+";" ";
"{";"}";"*";",";"[";"]";"$";";";":";"=";"
Wo semi-Spalte wird verwendet, um zu trennen zwischen den Zeichen .Ich habe versucht zu schreiben, ein regex für einige Zeichen, um zu überprüfen, ob Sie gearbeitet hatten, würde ich es verlängern.es ist nicht in Ordnung .
Was mache ich falsch in diesem.
Regex.IsMatch(textBox1.Text, @"^[\%\/\\\&\?\,\'\;\:\!\-]+$")
Einfachste Weg, um Ihre Lösung anpassen zu entfernen
^
und $
und überprüfen Regex.IsMatch(textBox1.Text, @"[\%\/\\\&\?\,\'\;\:\!\-]+").Success
. Sie können auch entfernen Sie die "\" da sind Sie in der Tat zu "entkommen" der string mit "@".InformationsquelleAutor ankur | 2012-10-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Spiele die Saiten bestehen ganz von Sonderzeichen. Sie müssen umkehren der Zeichen-Klasse zu entsprechen, Zeichenfolgen, die nicht ein Sonderzeichen enthalten:
Alternativ können Sie diesen regulären Ausdruck für eine beliebige Zeichenfolge mit nur alphanumerische Zeichen, Bindestriche, Unterstriche und Apostrophe.
Regex, die Sie erwähnen, in den Kommentaren
mit einem string enthält alle Zeichen außer den Zeichen, die erlaubt sind (müssen Sie möglicherweise zu entkommen, der Bindestrich, obwohl). Dies funktioniert so gut, vorausgesetzt, man invertiert den Zustand richtig (akzeptieren Sie die Zeichenfolgen, die nicht match).
yup es hat gut funktioniert.
InformationsquelleAutor John Dvorak
Wenn Sie gerade auf der Suche für eine Liste von Zeichen, dann ein regulärer Ausdruck ist die kompliziertere option.
String.IndexOfAny
zurückkehren wird der erste index eines Arrays von Zeichen oder -1. Also check:wo
theCharacetrers
hat zuvor eingerichtet wurden, die von der Klasse scope:InformationsquelleAutor Richard
Mussten Sie entfernen ^ von Anfang an und $ vom Ende des Musters, und sonst um die mit der Zeichenfolge beginnen soll und das Ende mit dem Sonderzeichen.
So, statt
sollte es
Lesen Sie mehr über start-string und Ende von string-Anker hier
InformationsquelleAutor maximpa
RegExp "string zusammengesetzt nur aus Sonderzeichen (da hast du begin/end-Marker
^
und$
).Wollen Sie wahrscheinlich nur überprüfen, wenn string nicht enthalten die Zeichen
@"[\%\/\\\&\?\,\'\;\:\!\-]")
wäre genug.Auch String.IndexOfAny vielleicht besser passen, wenn Sie brauchen nur zu sehen, wenn einer der Charaktere ist in der Quell-Zeichenfolge.
InformationsquelleAutor Alexei Levenkov
Bitte verwenden Sie diese im textchange event
DURCH Sharafu Hameed
InformationsquelleAutor Sharafu