JavaScript Formular Passwort mit Regex?

... komplette Frage anzeigen

2 Antworten

Ich denke es liegt am letzten Regex-Ausdruck im if-Statement. Dort steht:

[...].value.match(   /(?=.*[+-_,.:?!])/   )

Müsste es nicht heissen:

[...].value.match(   /.*(?=[+-_,.:?!])/   )

Sonst hast Du ja einen positiven Lookahead der .* enthält aber die leere Menge vorangesetzt hat, was meines Erachtens immer zu true evaluiert.

Ist es überhaupt notwendig, "?=" hier zu verwenden?

Antwort bewerten Vielen Dank für Deine Bewertung

Sonst auch so (Pseudocode):

Buchstaben+Zahlen

expr1=match(/^[a-zA-Z0-9]+$/) && !match(^[a-zA-Z]+$) && !match(^[0-9]+$)

Zahlen+Sonderzeichen

expr2=match(/^[0-9äöüÄÖÜ]+$/) && !match(^[0-9]+$) && !match(^[äöüÄÖÜ]+$)

Sonderzeichen+Buchstaben

expr3=match(/^[a-zA-ZäöüÄÖÜ]+$/) && !match(^[a-zA-Z]+$) && !match(^[äöüÄÖÜ]+$)

Schliesslich:

if(expr1 || expr2 || expr3) { password=valid; }
Antwort bewerten Vielen Dank für Deine Bewertung