Il chevauche le contenu de Expression régulière de "avec des symboles alphanumériques (insensible à la casse) et 8 caractères ou plus", mais pour chaque langue Je vais également résumer les optimisés. Cependant, il y a certaines langues que je ne connais pas beaucoup, alors veuillez signaler toute erreur.
^
$ '' représente respectivement le début et la fin, sauf si vous spécifiez le mode multiligne. \ A`` \ z
n'existe pas en premier lieu.
--En Ruby, ** mode multiligne ** par défaut, donc ^
$
correspondra respectivement au début et à la fin de chaque ligne. Cela n'a aucun sens pour les expressions régulières, utilisez donc \ A`` \ z
pour faire correspondre le début et la fin.$
correspond à la fin ou à la fin ** de la ** pause, utilisez \ z
sans la pause.\ z
en Ruby et PHP est équivalent à \ Z
en Python.(? I)
dans le modèle. Il existe un moyen de le spécifier avec un autre argument, mais c'est plus simple.--Lorsque vous utilisez la correspondance la plus longue, limitez le type de caractère.
--Dans Ruby, [
escape est requis dans la classe de caractères.
** (23/06/2015) ** Ajout de celui qui donne la priorité à la vitesse d'exécution. Cependant, je pense personnellement que c'est une expression régulière qui n'a pas besoin de sacrifier une lisibilité extrême, alors je l'ai commentée pour la rendre moins visible. Pensez à l'utiliser lorsque vous devez vous soucier de la vitesse d'exécution.
** (après-midi du 23/06/2015) **
Si vous craignez que . *?
Corresponde en théorie à une chaîne de longueur infinie, vous pouvez être un peu soulagé simplement en le réglant sur. {0,99}?
. Ce changement ne le rendrait pas beaucoup moins lisible.
C'est le modèle le plus simple. Je suis un peu inquiet lorsqu'on me demande si tout va bien à cette époque ...
JavaScript 
/^[a-z\d]{8,100}$/i
HTML Pattern Attribute
"^[a-zA-Z\d]{8,100}$"
Ruby
/\A[a-z\d]{8,100}+\z/i
PHP
'/\A[a-z\d]{8,100}+\z/i'
Python
'\A[a-z\d]{8,100}\Z(?i)'
En utilisant une anticipation affirmative, il est possible de faire une déclaration qui ** contient au moins un caractère. Look-ahead négatif comme Vérifiez si les caractères alphanumériques demi-largeur et les symboles demi-largeur sont utilisés dans les mots de passe des expressions régulières VBScript Cela peut être réalisé en l'utilisant, mais même lorsque le nombre de types de caractères augmente, la recherche positive peut être décrite plus simplement.
JavaScript 
/^(?=.*?[a-z])(?=.*?\d)[a-z\d]{8,100}$/i
# /^(?=\d{0,99}[a-z])(?=[a-z]{0,99}\d)[a-z\d]{8,100}$/i
HTML Pattern Attribute
"^(?=.*?[a-zA-Z])(?=.*?\d)[a-zA-Z\d]{8,100}$"
# "^(?=\d{0,99}[a-zA-Z])(?=[a-zA-Z]{0,99}\d)[a-zA-Z\d]{8,100}$"
Ruby
/\A(?=.*?[a-z])(?=.*?\d)[a-z\d]{8,100}+\z/i
# /\A(?=\d{0,99}+[a-z])(?=[a-z]{0,99}+\d)[a-z\d]{8,100}+\z/i
PHP
'/\A(?=.*?[a-z])(?=.*?\d)[a-z\d]{8,100}+\z/i'
# '/\A(?=\d{0,99}+[a-z])(?=[a-z]{0,99}+\d)[a-z\d]{8,100}+\z/i'
Python
'\A(?=.*?[a-z])(?=.*?\d)[a-z\d]{8,100}\Z(?i)'
# '\A(?=\d{0,99}[a-z])(?=[a-z]{0,99}\d)[a-z\d]{8,100}\Z(?i)'
De plus en plus de services Web exigent qu'ils contiennent les deux cas. Actuellement, je pense que c'est le plus idéal.
JavaScript 
/^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)[a-zA-Z\d]{8,100}$/
# /^(?=[A-Z\d]{0,99}[a-z])(?=[a-z\d]{0,99}[A-Z])(?=[a-zA-Z]{0,99}\d)[a-zA-Z\d]{8,100}$/
HTML Pattern Attribute
"^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)[a-zA-Z\d]{8,100}$"
# "^(?=[A-Z\d]{0,99}[a-z])(?=[a-z\d]{0,99}[A-Z])(?=[a-zA-Z]{0,99}\d)[a-zA-Z\d]{8,100}$"
Ruby
/\A(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)[a-zA-Z\d]{8,100}+\z/
# /\A(?=[A-Z\d]{0,99}+[a-z])(?=[a-z\d]{0,99}+[A-Z])(?=[a-zA-Z]{0,99}+\d)[a-zA-Z\d]{8,100}+\z/
PHP
'/\A(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)[a-zA-Z\d]{8,100}+\z/'
# '/\A(?=[A-Z\d]{0,99}+[a-z])(?=[a-z\d]{0,99}+[A-Z])(?=[a-zA-Z]{0,99}+\d)[a-zA-Z\d]{8,100}+\z/'
Python
'\A(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)[a-zA-Z\d]{8,100}\Z'
# '\A(?=[A-Z\d]{0,99}[a-z])(?=[a-z\d]{0,99}[A-Z])(?=[a-zA-Z]{0,99}\d)[a-zA-Z\d]{8,100}\Z'
Je me demande si c'est toujours aussi populaire ...
JavaScript 
/^(?=.*?[a-z])(?=.*?\d)(?=.*?[!-\/:-@[-`{-~])[!-~]{8,100}$/i
# /^(?=[!-@[-`{-~]{0,99}[a-z])(?=[!-\/:-~]{0,99}\d)(?=[a-z\d]{0,99}[!-\/:-@[-`{-~])[!-~]{8,100}$/i
HTML Pattern Attribute
"^(?=.*?[a-zA-Z])(?=.*?\d)(?=.*?[!-/:-@[-`{-~])[!-~]{8,100}$"
# "^(?=[!-@[-`{-~]{0,99}[a-zA-Z])(?=[!-/:-~]{0,99}\d)(?=[a-z\d]{0,99}[!-/:-@[-`{-~])[!-~]{8,100}$"
Ruby
/\A(?=.*?[a-z])(?=.*?\d)(?=.*?[!-\/:-@\[-`{-~])[!-~]{8,100}+\z/i
/\A(?=.*?[a-z])(?=.*?\d)(?=.*?[!-~&&[^a-z\d]])[!-~]{8,100}+\z/i
%r#\A(?=.*?[a-z])(?=.*?\d)(?=.*?[!-/:-@\[-`{-~])[!-~]{8,100}+\z#i
# /\A(?=[!-@\[-`{-~]{0,99}+[a-z])(?=[!-\/:-~]{0,99}+\d)(?=[a-z\d]{0,99}+[!-\/:-@\[-`{-~])[!-~]{8,100}+\z/i
# %r#\A(?=[!-@\[-`{-~]{0,99}+[a-z])(?=[!-/:-~]{0,99}+\d)(?=[a-z\d]{0,99}+[!-/:-@\[-`{-~])[!-~]{8,100}+\z#i
PHP
'/\A(?=.*?[a-z])(?=.*?\d)(?=.*?[!-\/:-@[-`{-~])[!-~]{8,100}+\z/i'
'#\A(?=.*?[a-z])(?=.*?\d)(?=.*?[!-/:-@[-`{-~])[!-~]{8,100}+\z#i'
# '/\A(?=[!-@[-`{-~]{0,99}+[a-z])(?=[!-\/:-~]{0,99}+\d)(?=[a-z\d]{0,99}+[!-\/:-@[-`{-~])[!-~]{8,100}+\z/i'
# '#\A(?=[!-@[-`{-~]{0,99}+[a-z])(?=[!-/:-~]{0,99}+\d)(?=[a-z\d]{0,99}+[!-/:-@[-`{-~])[!-~]{8,100}+\z#i'
Python
'\A(?=.*?[a-z])(?=.*?\d)(?=.*?[!-/:-@[-`{-~])[!-~]{8,100}\Z(?i)'
# '\A(?=[!-@[-`{-~]{0,99}[a-z])(?=[!-/:-~]{0,99}\d)(?=[a-z\d]{0,99}[!-/:-@[-`{-~])[!-~]{8,100}\Z(?i)'
Recommended Posts