Cette fois, je vais vous apporter les règles régulières pour faire correspondre complètement les mots de passe numériques et alphabétiques (explication détaillée des étapes). Quelles sont les précautions pour obtenir la correspondance régulière des mots de passe numériques et alphabétiques. est un cas pratique. Jetons un coup d'œil une fois.
Un mot de passe pour la fonction Enregistrement de l'utilisateur a les exigences suivantes : il doit être composé de chiffres et de lettres, et doit contenir à la fois des chiffres et des lettres, et sa longueur doit être comprise entre 8 et 16. personnages.
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édit que tous les chiffres ne suivent pas cette position
(?![a-zA-Z]+$) Prédit 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 fin 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)); } }
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres. articles connexes sur le site Web PHP chinois !
Lecture recommandée :
Comment utiliser les expressions régulières en js (avec code)
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!