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?

53voto

Edwin Beltran Punkte 4139

Nur eine kleine Verbesserung für @anubhavas Antwort: Da Sonderzeichen auf diejenigen auf der Tastatur beschränkt sind, verwenden Sie dies für jedes Sonderzeichen:

^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$

Dieses Regex erzwingt diese Regeln:

  • Mindestens ein großgeschriebener englischer Buchstabe
  • Mindestens ein kleinbuchstabiger englischer Buchstabe
  • Mindestens eine Ziffer
  • Mindestens ein Sonderzeichen
  • Mindestens acht Zeichen lang

49voto

scniro Punkte 16494

Ich hatte Schwierigkeiten, der beliebtesten Antwort für meine Umstände zu folgen. Beispielsweise schlug die Validierung bei Zeichen wie ; oder [ fehl. Ich wollte meine Sonderzeichen nicht auf die Positivliste setzen, also setzte ich stattdessen [^\w\s] als Test ein - einfach ausgedrückt - übereinstimmen mit Nicht-Wortzeichen (einschließlich numerischer) und Nicht-Leerzeichen. Zusammengefasst, hier ist, was für mich funktioniert hat...

  • mindestens 8 Zeichen
  • mindestens 1 numerisches Zeichen
  • mindestens 1 Kleinbuchstabe
  • mindestens 1 Großbuchstabe
  • mindestens 1 Sonderzeichen

/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/

JSFiddle Link - einfache Demo mit verschiedenen Fällen

23voto

SamWhan Punkte 8186

Eine "generische" Version(?), die auch Nicht-Englische Zeichen als Sonderzeichen erlaubt.

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

var pwdList = [
    '@@V4-\3Z`zTzM{>k',
    '12qw!"QW12',
    '123qweASD!"#',
    '1qA!"#$%&',
    'Günther32',
    '123456789',
    'qweASD123',
    'qweqQWEQWEqw',
    '12qwAS!'
  ],
  re = /^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*[^\w\s])\S{8,}$/;

  pwdList.forEach(function (pw) {
    document.write('' + pw + '');
  });

14voto

Sazzad Punkte 166

Für standardmäßige Passwortanforderungen habe ich dies als nützlich befunden:

  • Mindestens 1 Buchstabe

  • Mindestens 1 Ziffer

  • Enthält keine Leerzeichen

  • Optionale Sonderzeichen z.B. @$!%*#?&^_-

  • Mindestens 8 Zeichen lang

    /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d@$!%*#?&^_-]{8,}$/

Sie können auch die Obergrenze festlegen, zum Beispiel {8,32} bis zu 32 Zeichen lang.

14voto

Vikram Punkte 720

Importieren Sie die JavaScript-Datei jquery.validate.min.js.

Sie können diese Methode verwenden:

$.validator.addMethod("pwcheck", function (value) {
    return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value)
});
  1. Mindestens ein Großbuchstabe
  2. Mindestens ein Kleinbuchstabe
  3. Mindestens eine Ziffer
  4. Mindestens ein Sonderzeichen

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