Ich möchte ein Regex-Muster, das mir beliebige Zeichen erlaubt, aber keine (0-9) Zahlen zulässt?
Antworten
Zu viele Anzeigen?Einfach:
/^([^0-9]*)$/
Dieses Muster entspricht einer beliebigen Anzahl von Zeichen, die nicht 0
über 9
.
Ich empfehle einen Blick auf http://regexpal.com/ . Damit können Sie ganz einfach eine Regex testen.
Zum Beispiel so: ^[^0-9]+$
Erläuterung:
^
stimmt mit dem Anfang der Zeichenkette überein[^...]
mit allem übereinstimmt, was ist nicht innerhalb0-9
bedeutet ein beliebiges Zeichen zwischen 0 und 9+
mit einer oder mehreren der vorhergehenden Sachen übereinstimmt$
stimmt mit dem Ende der Zeichenkette überein
\D
eine Nicht-Ziffer ist, und somit \D*
ist eine beliebige Anzahl von Nicht-Ziffern in einer Reihe. Die gesamte Zeichenfolge sollte also übereinstimmen *`^\D$` .**
Überprüfen Sie http://rubular.com/r/AoWBmrbUkN Es funktioniert perfekt.
Sie können auch anprobieren http://regexpal.com/ O http://www.regextester.com/
Es ist besser, sich auf Regexps wie ^[^0-9]+$
und nicht auf Regexps wie [a-zA-Z]+
da Ihre Anwendung vielleicht eines Tages Benutzereingaben von Benutzern akzeptiert, die eine Sprache wie Polnisch sprechen, in der viel mehr Zeichen akzeptiert werden sollten als nur [a-zA-Z]+
. Verwendung von ^[^0-9]+$
können solche unerwünschten Nebenwirkungen leicht ausgeschlossen werden.
- See previous answers
- Weitere Antworten anzeigen