Regex für ein Kennwort, für das ein numerisches oder ein nicht alphanumerisches Zeichen erforderlich ist

7

Ich suche eine ziemlich spezifische Regex und ich habe es fast, aber nicht ganz.

Ich möchte eine Regex, die mindestens 5 Zeichen benötigt, wobei mindestens eines dieser Zeichen entweder ein numerischer Wert oder ein nicht-alphanumerisches Zeichen ist.

Das habe ich bisher:

%Vor%

Das Problem ist also der "oder" -Teil. Es erlaubt nicht-alphanumerische Werte, erfordert aber immer noch mindestens einen numerischen Wert. Sie können sehen, dass ich den oder Operator "|" zwischen meinen erfordern Numerik und die nicht-alphanumerische, aber das scheint nicht zu funktionieren.

Irgendwelche Vorschläge wären großartig.

    
Chris Nicol 04.01.2010, 05:11
quelle

5 Antworten

19

Versuchen Sie:

%Vor%

Eine kurze Erklärung:

%Vor%     
Bart Kiers 04.01.2010, 08:06
quelle
1

Vielleicht könnte das für Sie funktionieren:

%Vor%

Und verwende einen Code wie diesen, um die String-Größe zu überprüfen:

%Vor%     
Bob 04.01.2010 05:28
quelle
0

Ist es wirklich notwendig, alles in einem riesigen Regex zu stopfen? Verwenden Sie einfach die Programmlogik (5 ≤ length(s) ≤ 20) ∧ (/[[:digit:]]/ ∨ /[^[:alpha:]]/) . Viel besser lesbar syntaktisch und semantisch, denke ich.

    
Nietzche-jou 04.01.2010 05:26
quelle
0

Ziemlich einfache Lösung, sobald S.Mark mich auf den richtigen Weg gebracht hat, musste ich nur meine numerischen und nicht-alphanumerischen Teile zusammenfügen.

Hier ist der letzte Regex für jeden, der interessiert ist:

%Vor%

Dies erlaubt jedes Passwort zwischen 5 und 20 Zeichen und erfordert mindestens einen Buchstaben und ein numerisches und / oder ein nicht-alphanumerisches Zeichen.

    
Chris Nicol 04.01.2010 07:59
quelle
0

Wie wäre es damit?

%Vor%

Für die Länge 5,20 Bitte verwenden Sie die normale Strlen-Funktion

    
YOU 04.01.2010 05:17
quelle

Tags und Links