[JAVA] REGEX complexe
dream'
Messages postés
4
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
J'essaye d'écrire une expression rationelle me permettant de vérifier si mon mot de passe contient au moins 3 des 4 paramètres suivants :
- Une minuscule
- Une majuscule
- Un caractere special
- Un nombre
J'en ai mis une au point me permettant de vérifier si l'ensemble des paramètres sont présents. Existe un moyen de savoir si seulement 3 des 4 ont ete entrés par l'utilisateur ?
Merci d'avance.
Cordialement,
J'essaye d'écrire une expression rationelle me permettant de vérifier si mon mot de passe contient au moins 3 des 4 paramètres suivants :
- Une minuscule
- Une majuscule
- Un caractere special
- Un nombre
J'en ai mis une au point me permettant de vérifier si l'ensemble des paramètres sont présents. Existe un moyen de savoir si seulement 3 des 4 ont ete entrés par l'utilisateur ?
Merci d'avance.
Cordialement,
A voir également:
- [JAVA] REGEX complexe
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
1 réponse
Pourquoi chercher à faire une expression régulière pour ce genre de tests ?
L'analyse d'une regex complexe sera nettement plus longue en temps de calculs qu'une petite boucle qui teste les caractères un à un, en Java ça n'a donc pas d'utilité.
L'analyse d'une regex complexe sera nettement plus longue en temps de calculs qu'une petite boucle qui teste les caractères un à un, en Java ça n'a donc pas d'utilité.
public static int verif(String str)
{
boolean min=false, maj=false, num=false, spe=false;
for (char ch : str.toCharArray())
{
min |= Character.isLowerCase(ch);
maj |= Character.isUpperCase(ch);
num |= Character.isDigit(ch);
spe |= !Character.isLetterOrDigit(ch);
if (min && maj && num && spe) break;
}
int n=0;
if (min) n++;
if (maj) n++;
if (num) n++;
if (spe) n++;
return n;
}
public static void main(String...args)
{
System.out.println(verif("AZERTY")); // 1
System.out.println(verif("qwerty")); // 1
System.out.println(verif("123456")); // 1
System.out.println(verif("+-*/%=")); // 1
System.out.println(verif("AWerty")); // 2
System.out.println(verif("1+2=12")); // 2
System.out.println(verif("Az2*m7")); // 4
}