2015-04-20 9 views
3

Je souhaite mettre en place la validation pour un champ de mot de passe où le mot de passe entré doit être au moins 6 caractères et peut contenir des lettres et des chiffresMot de passe java validation

private static final String PASSWORD_PATTERN = "^[A-Za-z0-9]{6}"; 

J'ai une méthode de validation pour valider le mot de passe .

public void validate() { 

if(!password.matches(PASSWORD_PATTERN)) { 
     this.addFieldError("password", "Password must contain 6 characters or more"); 
} 
+7

Bon travail, mais avez-vous une question? – Naruto

+0

Quel est le problème? – Aakash

Répondre

12

{6} signifie exactement six caractères, utilisez {6,}. Je voudrais également supprimer ^ de regex car il est redondant. Notez également qu'il existe \w classe de caractères prédéfinie qui est un raccourci pour [a-zA-Z_0-9] si vous êtes OK avec _ dans le mot de passe. Dans l'ensemble, il pourrait être "\\w{6,}"

+5

votez pour répondre à une question non existante. – Maroun

+0

Cela a fonctionné, merci – hankey39

0

Quick google révélé, que ce que vous voulez faire, est un problème assez commun et les gens l'ont essayé avant.

Par exemple, voir http://examples.javacodegeeks.com/core-java/util/regex/matcher/validate-password-with-java-regular-expression-example/

Ils utilisent également regex pour valider le mot de passe, mais il est un peu plus complexe. Cela pourrait donner de bonnes idées pour améliorer votre code, une fois qu'il s'avère que les mots de passe alphanumériques à 6 symboles ne sont pas suffisants.