Benötigen Sie einen regulären Ausdruck für das Feld, das ermöglichen sollte, Sonderzeichen, alphanumerische Zeichen und Leerzeichen
Ich bin mit dem folgenden regex:
[a-zA-Z0-9-#.()/%&\\s]{0,19}.
Die Anforderung, das Feld ist sollte man es zulassen, dass jede Sache und das Feld sollte die Größe 19.
Lassen Sie mich wissen, wenn irgendwelche Korrekturen.Jede Hilfe ist willkommen.
Definieren Sie "Sonderzeichen" ...
!@#$%^&*()_+|...alle diese
Definieren Sie jeden Ihrer Begriffe, oder Sie erhalten nicht die eine richtige Antwort.
Ich Verstand nicht, wenn ich meine Frage gar keinen Sinn, oder muss ich noch mehr info..
!@#$%^&*()_+|...alle diese
Definieren Sie jeden Ihrer Begriffe, oder Sie erhalten nicht die eine richtige Antwort.
Ich Verstand nicht, wenn ich meine Frage gar keinen Sinn, oder muss ich noch mehr info..
InformationsquelleAutor 1078081 | 2012-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie einfach, um zu entkommen die Sonderzeichen. Versuchen:
Können Sie testen Sie Ihre regulären Ausdrücke auf http://rubular.com/
-
geflüchtet zu sein, wenn Sie verwendet werden, einfach nach einem Angebot, da der Motor herausfinden können, dass die 2.-
konnte nicht Teil eines anderen Bereichs. Noch, wenn Sie Zweifel haben, auf der Flucht ist sicher.Ich bin mit hibernate validator
InformationsquelleAutor Andy Triggs
Deine regex ist falsch, mindestens in einer Art und Weise - wenn Sie erwägen, ein Bindestrich, ein "special character", dann sollte man es am Anfang oder Ende des Bereichs. Also:
[a-zA-Z0-9#.()/%&\s-]{0,19}
.Zeichen, dass sind "special" im Rahmen der regex selbst sind oft nicht geparst, wenn Sie sich nicht innerhalb einer range. So bist du gut mit
.
,(
und)
. Aber überprüfen Sie Ihren parser um sicherzustellen, dass es versteht, was\s
bedeutet. Es könnte einfacher sein, nur um einen Platz.Auch, wenn deine regex-parser dazu neigt, zu begrenzen Sie die regex mit Schrägstrichen, dann haben Sie möglicherweise die Flucht der Schrägstrich in der Mitte der Reihe:
[a-zA-Z0-9#.()\/%&\s-]{0,19}
.InformationsquelleAutor ghoti
Nur die Flucht der dash
-
oder legen Sie Sie am Anfang oder am Ende der Zeichenklasse:oder
oder
echo Hello | egrep '[a-zA-Z0-9\-#.()/%&\\s]{0,19}'
zurückegrep: Invalid range end
.funktioniert bei mir auf CentOS
Du hast sicherlich Recht, für JSLint, aber OP nicht sagen, welche Sprache er benutzt.
Ich bin mit java
InformationsquelleAutor Toto