Es überschneidet sich mit dem Inhalt von Regulärer Ausdruck "mit alphanumerischen Symbolen (unabhängig von Groß- und Kleinschreibung) und 8 Zeichen oder mehr", jedoch für jede Sprache Ich werde auch die optimierten zusammenfassen. Es gibt jedoch einige Sprachen, über die ich nicht viel weiß. Bitte weisen Sie auf Fehler hin.
^
$
für den Anfang bzw. das Ende, es sei denn, Sie geben den mehrzeiligen Modus an. \ A`` \ z
existiert überhaupt nicht.^
$
mit dem Anfang bzw. Ende jeder Zeile übereinstimmt. Dies ist für reguläre Ausdrücke nicht sinnvoll. Verwenden Sie daher \ A`` \ z
, um Anfang und Ende abzugleichen.$
mit dem Ende oder dem Ende ** von ** Zeilenumbrüchen ** übereinstimmt, verwenden Sie \ z
ohne Zeilenumbrüche.\ z
in Ruby und PHP entspricht \ Z
in Python.** (23.06.2015) ** Es wurde die hinzugefügt, die die Ausführungsgeschwindigkeit priorisiert. Ich persönlich denke jedoch, dass es sich um einen regulären Ausdruck handelt, der nicht auf extreme Lesbarkeit verzichten muss. Deshalb habe ich ihn auskommentiert, um ihn weniger auffällig zu machen. Verwenden Sie es, wenn Sie sich Gedanken über die Ausführungsgeschwindigkeit machen müssen.
** (Nachmittag 23.06.2015) **
Wenn Sie befürchten, dass . *?
Theoretisch mit einer Zeichenfolge mit unendlicher Länge übereinstimmt, können Sie ein wenig erleichtert sein, indem Sie sie einfach auf. {0,99}?
Setzen. Diese Änderung würde es nicht viel weniger lesbar machen.
Dies ist das einfachste Muster. Ich bin ein wenig besorgt, wenn ich gefragt werde, ob das in dieser Zeit in Ordnung ist ...
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)'
Durch positive Vorausschau ist es möglich, eine Aussage zu treffen, die ** mindestens ein Zeichen enthält. Negative Vorausschau wie Überprüfen Sie, ob alphanumerische Zeichen und Symbole mit halber Breite im Kennwort in regulären VBScript-Ausdrücken im Kennwort verwendet werden Es kann durch seine Verwendung realisiert werden, aber selbst wenn die Anzahl der Zeichentypen zunimmt, kann ein positiver Ausblick einfacher beschrieben werden.
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)'
Immer mehr Webdienste fordern, dass sie beide Fälle enthalten. Derzeit halte ich dies für das Idealste.
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'
Ich frage mich, ob das immer noch so beliebt ist ...
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