2017-06-07 12 views
2

Ich brauche Eingabestring mit regex zu validieren, die unten aufgeführten Anforderungen erfüllt sollten:Regex alphanumerische mit Sonderzeichen

  • Wenn alle Zahlen -> Fehler
  • Wenn alle Sonderzeichen -> Fehler
  • Wenn nur Zahlen + Sonderzeichen -> Fehler
  • alle übrigen sollten als nicht Fehler angezeigt werden.

konnte ich alle Fälle meine Prüfung bestanden nicht bekommen.

Hier ist meine regex:

\d*([a-zA-Z,\/().]*[a-zA-Z][\d,\/().]*)[a-zA-Z\d\s]*$ 

Für die Sonderzeichen, ich eine bestimmte Liste bekommen ,\/(). sie in lassen Kann mir dies zu verstehen jemand helfen.?

Antwort

0

können Sie die folgende regex verwenden:

^(?:[\d,\/().]*[a-zA-Z][a-zA-Z\d,\/().]*)?$ 

Siehe regex demo

Einzelheiten:

  • ^ - Beginn der Zeichenfolge
  • (?:[\d,\/().]*[a-zA-Z][a-zA-Z\d,\/().]*)? - eine optionale Sequenz (es Lässt die Zeichenfolge leer sein):
    • [\d,\/().]* - 0+ Ziffern und Sonder
    • [a-zA-Z] - ein alpha
    • [a-zA-Z\d,\/().]* - 0+ alpha, Ziffern und Sonder
  • $ - Ende der Zeichenfolge
+0

Dies funktioniert und Dank. Ich versuche nur, es zu verstehen und mit meiner Regex zu vergleichen. In meiner Regex nimmt es alle Sonderzeichen auf, die für die, die ich weitergegeben habe, irrelevant sind. Gibt es etwas, das fehlt? – Vamchi

+0

Sie vermissen '^' (ein kritischer Fehler hier), und Sie haben auch Leerzeichen mit '\ s' erlaubt. –

+0

Wenn wir Leerzeichen zulassen, wäre es dann „^ (?: [. \ D, \ /() \ s] * [a-zA-Z] [a-zA-Z \ d, \ /() \. s] * \ s *)? $ "? Für Ex: Es sollte (19 xxxx sjnfjfb) – Vamchi

0

gehen streng Ihren Anforderungen, würde folgendes tun:

[^\d,\\\/().] 

, die übereinstimmt, ob es eine „Auslösung“ Zeichen (nicht Ziffer, nicht speziell) ist

Wenn Sie die gesamte Zeichenfolge übereinstimmen soll, verwenden

^.*[^\d,\\\/().].*$ 
Verwandte Themen