2016-06-03 12 views
1

Ich habe die folgenden Regeln für die Kennwortüberprüfung:Regex Passwort Validator

  • mindestens 6 Zeichen
  • mindestens 1 Großbuchstabe

Wie kann ich bestätigen dies mit einem RegEx?

Hier ist mein Muster: ^(?=.*[0-9]+.*)(?=.*[a-zA-Z]+.*)[0-9a-zA-Z]{6,}$

Das Muster oben erzwingt auch Zahlen ..., die ich nicht brauche. Der Benutzer kann jedoch alle anderen Zeichen eingeben, die er wünscht, außer dass er ein Großbuchstabe enthalten und länger oder gleich 6 Zeichen lang sein muss.

+0

Wo haben Sie für einen Großbuchstaben testen? Es scheint, dass Sie für mindestens eine Ziffer und mindestens einen Buchstaben testen, und dass nur Ziffern und Buchstaben erlaubt sind ... Scheint nichts mit Ihren Anforderungen zu tun. Welches ist es? – trincot

Antwort

1

Sie können dies versuchen:

^(?=.*?[A-Z]).{6,}$ 

DEMO

Wenn Sie Sonderzeichen und dann ändern Sie es wie

^(?=.*?[A-Z])(?=.*?[#[email protected]$%^&*-]).{6,}$ 
0
^(?=.*[A-Z])[\w-[_\]]{6,}$ 

Diese Kraft enthält zulassen möchten ein Großbuchstabe mit (?=.*[A-Z]) und erlauben alphanumerische: [\w-[_\]] (\w ist [a-zA-Z0-9_], in dem wir die _

0

Sie können diese entfernen verwenden:

(?=.*[A-Z]).{8} 

oder Wenn Sie die volle Regel wollen, können versuchen, diese:

(?=[a-z]*[A-Z])(?=\D*\d)(?=.*[#[email protected]$%^&*-]).{8} 
0

Es könnte besser sein, die Regeln separat auszuwerten, um dem Benutzer Feedback darüber zu geben, welche Regel nicht validiert werden konnte.

Ich schlage vor, etwas zu tun, wie diese statt: https://jsfiddle.net/hejecr9d/

// will store list of rules 
var rules = [] 

// at least one capital letter rule 
rules.one_capital_letter = { 
    fail_message: 'password needs at least one capital letter', 
    validate: function(password){ 
     return /[A-Z]/.test(password) 
    } 
} 

// at least six letters rule 
rules.at_least_six_letters = { 
    fail_message: 'password needs to have at least 6 characters', 
    validate: function(password){ 
     return password.length >= 6 
    } 
} 

function validate_password(password) { 

    // goes through all the rules 
    for(rule in rules) { 
     if(!rules[rule].validate(password)) { 
      return {success: false, message: rules[rule].fail_message} 
     } 
    } 

    // return success after all rules are checked 
    return {success: true, message: 'password validated successfully'} 
} 

// Test if it works 
var test_strings = ['abcd', 'Abcd', 'Abcdef'] 
for(i in test_strings) { 
    $('body').append(test_strings[i] + ': ' + validate_password(test_strings[i]).message + '<br>') 
} 
Verwandte Themen