888 Stimmen

Der Regex für das Passwort muss mindestens acht Zeichen enthalten, mindestens eine Zahl sowie sowohl Klein- als auch Großbuchstaben und Sonderzeichen.

Ich möchte einen regulären Ausdruck verwenden, um das folgende zu überprüfen:

Ein Passwort muss mindestens acht Zeichen lang sein, mindestens eine Zahl enthalten und sowohl Klein- als auch Großbuchstaben sowie Sonderzeichen wie #, ?, ! enthalten.

Es darf nicht Ihr altes Passwort enthalten oder Ihren Benutzernamen, "password" oder "websitename".

Und hier ist mein Validierungsausdruck, der für acht Zeichen einschließlich einem Großbuchstaben, einem Kleinbuchstaben und einer Zahl oder einem Sonderzeichen gilt.

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

Wie kann ich es für ein Passwort muss acht Zeichen lang sein, einschließlich eines Großbuchstabens, eines Sonderzeichens und alphanumerischer Zeichen schreiben?

3voto

SONewbiee Punkte 363

@ClasG hat bereits vorgeschlagen:

^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*[^\w\s])\S{8,}$

aber es akzeptiert nicht _(Unterstrich) als ein Sonderzeichen (z. B. Aa12345_).

Eine verbesserte Version ist:

^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*([^\w\s]|[_]))\S{8,}$

2voto

shiyani suresh Punkte 668
(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+-]).{6}

2voto

Arun Sivanandan Punkte 79

Je nach Bedarf sollte dieses Muster gut funktionieren. Versuchen Sie es damit,

^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}

Erstellen Sie einfach eine Zeichenfolgenvariable, weisen Sie das Muster zu und erstellen Sie eine boolesche Methode, die true zurückgibt, wenn das Muster korrekt ist, sonst false.

Beispiel:

String pattern = "^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}";
String password_string = "Geben Sie hier das Passwort ein"

private boolean isValidPassword(String password_string) {
    return password_string.matches(Constants.passwordPattern);
}

2voto

Jordi Gomis Punkte 63

Mit diesem Regex sind alle Bedingungen erfüllt:

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^A-Za-z0-9]).{8,}$

Dieser Regex wird diese Regeln durchsetzen:

  • Mindestens ein Großbuchstabe, (?=.*?[A-Z])
  • Mindestens ein Kleinbuchstabe, (?=.*?[a-z])
  • Mindestens eine Ziffer, (?=.*?[0-9])
  • Mindestens ein Sonderzeichen, das jedes Zeichen ist, das nicht in den ersten 3 Bedingungen enthalten ist, (?=.*?[^A-Za-z0-9])
  • Mindestens acht Zeichen lang .{8,}

2voto

nakorndev Punkte 723

Wenn Sie Regex nicht verwenden möchten. Dann hilft dieses Modul sehr: https://www.npmjs.com/package/password-validator

var passwordValidator = require('password-validator');

// Erstelle ein Schema
var schema = new passwordValidator();

// Füge Eigenschaften hinzu
schema
.is().min(8)                                    // Mindestlänge 8
.is().max(100)                                  // Maximale Länge 100
.has().uppercase()                              // Muss Großbuchstaben enthalten
.has().lowercase()                              // Muss Kleinbuchstaben enthalten
.has().digits(2)                                // Muss mindestens 2 Ziffern enthalten
.has().not().spaces()                           // Sollte keine Leerzeichen enthalten
.is().not().oneOf(['Passw0rd', 'Password123']); // Diese Werte auf Blacklist setzen

// Überprüfung anhand eines Passwortstrings
console.log(schema.validate('validPASS123'));
// => true
console.log(schema.validate('invalidPASS'));
// => false

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X