jQuery Validate Plugin - Passwort-Check - Mindestanforderungen - Regex
Ich habe ein kleines problem mit meinem Passwort-checker.
Es muss ein Registrierungs-Formular mit einigen Feldern.
Ich verwende jQuery-Validate plugin zur Validierung von Benutzer-Eingaben.
Alles funktioniert, außer die Passwort-Validierung:
Das Passwort sollte einige Mindestanforderungen erfüllen:
- minimale Länge: 8 -> ich habe gerade mit 'minlength: 8'
- mindestens einen Kleinbuchstaben, Zeichen
- mindestens eine Ziffer
- Zulässige Zeichen: A-Z A-z 0-9 @ * _ - . !
Im moment habe ich diesen code verwenden, um überprüfen Sie das Kennwort:
$.validator.addMethod("pwcheck",
function(value, element) {
return /^[A-Za-z0-9\d=!\-@._*]+$/.test(value);
});
Dieser Code funktioniert für die erlaubten Zeichen, aber nicht für die Mindestanforderungen.
Ich weiß, dass Sie verwenden können, zum Beispiel (?=.*[a-z])
für ein lower-case-Anforderung. Aber ich verstehe es einfach nicht, um zu arbeiten.
Wenn ich (?=.*[a-z])
der ganze code nicht mehr funktioniert. Ich muss wissen, wie man richtig den code hinzufügen, um die bestehende.
Danke für Eure Antworten!
Dies ist der vollständige code
<script>
$(function() {
$("#regform").validate({
rules: {
forename: {
required: true
},
surname: {
required: true
},
username: {
required: true
},
password: {
required: true,
pwcheck: true,
minlength: 8
},
password2: {
required: true,
equalTo: "#password"
},
mail1: {
required: true,
email: true
},
mail2: {
required: true,
equalTo: "#mail1"
}
},
messages: {
forename: {
required: "Vornamen angeben"
},
surname: {
required: "Nachnamen angeben"
},
username: {
required: "Usernamen angeben"
},
password: {
required: "Passwort angeben",
pwcheck: "Das Passwort entspricht nicht den Kriterien!",
minlength: "Das Passwort entspricht nicht den Kriterien!"
},
password2: {
required: "Passwort wiederholen",
equalTo: "Die Passwörter stimmen nicht überein"
},
mail1: {
required: "Mail-Adresse angeben",
email: "ungültiges Mail-Format"
},
mail2: {
required: "Mail-Adresse wiederholen",
equalTo: "Die Mail-Adressen stimmen nicht überein"
}
}
});
$.validator.addMethod("pwcheck",
function(value, element) {
return /^[A-Za-z0-9\d=!\-@._*]+$/.test(value);
});
});
</script>
InformationsquelleAutor der Frage bayerphi | 2013-09-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie es hier:
Aber es ist viel einfacher, dies zu tun, ohne ein lookahead:
InformationsquelleAutor der Antwort Bergi
Gut können Sie {8,} anstelle von "+" für mindestens 8 chars mit keine maximale oder noch besser a {8, 20} für ein minimum von 8 und einem maximum von 20.
Wirklich aber ich sehe nicht den Wert in versuchen, squeeze-alle Ihre Validierung in einem einzigen regexp. Wenn Sie es brechen, es macht es viel leichter zu warten, weniger Fehler anfällig, und es ermöglicht Ihnen den Bericht zurück an den Benutzer, den spezifischen Grund, WARUM das Passwort fehlgeschlagen ist, anstelle der gesamten Anforderung.
Könnten Sie brechen Sie in ein paar Schecks
Ich bin nicht vertraut mit dem jQuery-Validation-plugin, aber ich nehme an, Sie könnten dann wieder hilfreich eine hilfreiche Nachricht für jeden test, der fehlgeschlagen ist.
InformationsquelleAutor der Antwort Anon
wenn Sie möchten, um zu überprüfen, Kennwort bestätigen und minimum Charakter Validierung ist, dann können Sie
InformationsquelleAutor der Antwort sandeep kumar
Passwort-Validierung können mehrere Regeln, zum Beispiel:
InformationsquelleAutor der Antwort David Castro