JS Passwort überprüfen?
Hallo zusammen
Ich versuche ein Passwort zu validieren mithilfe von Regex.. Es soll nur erlaubt sein Buchstaben + Zahlen oder Zahlen + Sonderzeichen oder Sonderzeichen + Buchstaben... Nun geht es immer in die If schlaufe rein wenn ich NUR zahlen eingebe..Wieso? (Code-Style nicht beachten) Danke;D
if(document.getElementById('Passwort').value.match(/[a-zA-ZäöüÄÖÜ]/) && document.getElementById('Passwort').value.match(/[0-9]/) || document.getElementById('Passwort').value.match(/[a-zA-ZäöüÄÖÜ]/) && document.getElementById('Passwort').value.match(/(?=.*[+-_,.:?!])/) || document.getElementById('Passwort').value.match(/[0-9]/) && document.getElementById('Passwort').value.match(/(?=.*[+-_,.:?!])/)){
document.getElementById('Passwort').style.backgroundColor = "green";
document.getElementById('passwortfalsch').innerHTML= "";
document.getElementById('passwortfalsch').style.border= "";
uberprufung = true;
}
1 Antwort
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren
Probier's mal so:
if(
(document.getElementById('Passwort').value.match(/[a-zA-ZäöüÄÖÜ]/) && document.getElementById('Passwort').value.match(/[0-9]/)) ||
(document.getElementById('Passwort').value.match(/[a-zA-ZäöüÄÖÜ]/) && document.getElementById('Passwort').value.match(/[+_,.:?!-]/)) ||
(document.getElementById('Passwort').value.match(/[0-9]/) && document.getElementById('Passwort').value.match(/[+_,.:?!-]/))
){
document.getElementById('Passwort').style.backgroundColor = "green";
document.getElementById('passwortfalsch').innerHTML= "";
document.getElementById('passwortfalsch').style.border= "";
uberprufung = true;
}
Anmerkungen:
1. Ein Bindestrich "-", der als solcher genommen werden soll, sollte in einer Zeichengruppe immer am Ende stehen.
2. Man kann zwar manchmal zuviele Klammern in eine Bedingung setzen, aber in deinem Fall waren's 3 offene und 3 geschlossene zuwenig...