Maison >interface Web >js tutoriel >Une brève analyse des expressions régulières pour faire correspondre les mots de passe numériques et alphabétiques

Une brève analyse des expressions régulières pour faire correspondre les mots de passe numériques et alphabétiques

微波
微波original
2017-06-28 13:30:441171parcourir

Lorsque je travaillais sur un projet récemment, j'ai rencontré une telle exigence, qui exigeait qu'il soit composé de chiffres et de lettres, qu'il contienne à la fois des chiffres et des lettres, et que la longueur soit comprise entre 8 et 16 chiffres. Permettez-moi de partager avec vous le code d'implémentation. Veuillez jeter un œil à

Un mot de passe pour la fonction Enregistrement de l'utilisateur : il doit être composé de chiffres et de lettres et doit contenir. à la fois des chiffres et des lettres, et doit être d'une certaine longueur entre 8 et 16 bits.

Comment analyser les besoins ? Diviser! C’est l’idée générale de la conception de logiciels. Depuis, les exigences de fractionnement sont les suivantes :

1, ne peut pas être composé uniquement de chiffres

2, ne peut pas être composé uniquement de lettres

3, doit être composé de chiffres ou de lettres

Tant que les trois conditions ci-dessus peuvent être remplies en même temps, écrivez-le comme suit :

^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$

Commentez-le séparément :

^ Faites correspondre le début d'une ligne

( ?![0-9]+$) Prédisez que tous les chiffres ne suivent pas cette position

(?![a-zA-Z]+$) Prédisez que toutes les lettres ne suivent pas cette position

[ 0-9A-Za-z] {8,16} se compose de 8 à 16 chiffres ou lettres

$ correspond à la position finale de la ligne

Remarque : (?!xxxx) Il s'agit d'une forme d'assertion négative de largeur nulle de l' expression régulière , indiquant que le caractère après la position prédéfinie n'est pas xxxx.

Les exemples de tests sont les suivants :

public class Test {
  public static void main(String[] args) throws Exception {
    String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$";    
    String value = "aaa"; // 长度不够
    System.out.println(value.matches(regex));
    value = "1111aaaa1111aaaaa"; // 太长
    System.out.println(value.matches(regex));
    value = "111111111"; // 纯数字
    System.out.println(value.matches(regex));
    value = "aaaaaaaaa"; // 纯字母
    System.out.println(value.matches(regex));
    value = "####@@@@#"; // 特殊字符
    System.out.println(value.matches(regex));
    value = "1111aaaa"; // 数字字母组合
    System.out.println(value.matches(regex));
    value = "aaaa1111"; // 数字字母组合
    System.out.println(value.matches(regex));
    value = "aa1111aa";  // 数字字母组合
    System.out.println(value.matches(regex));
    value = "11aaaa11";  // 数字字母组合
    System.out.println(value.matches(regex));
    value = "aa11aa11"; // 数字字母组合
    System.out.println(value.matches(regex));
  }
}

Ce qui précède est une expression régulière que l'éditeur vous présente pour faire correspondre les mots de passe numériques et alphabétiques. J'espère que cela vous sera utile. à vous. Si vous avez des questions, laissez-moi un message et je vous répondrai à temps.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn