ピーター・モーテンセンに返信しますが、評判がよくありません。
彼の表現は、指定された最小要件のそれぞれに最適です。特殊文字を必要としない彼の表現の問題は、特殊文字も許可されないため、OPが要求したとは思わない最大要件も強制することです。通常、ユーザーが自分のパスワードを必要なだけ強力にすることを許可します。なぜ強力なパスワードを制限するのですか?
したがって、彼の「最小8文字、少なくとも1つの文字と1つの数字」式:
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
最小要件を満たしていますが、残りの文字は文字と数字のみです。特殊文字を許可(必須ではない)するには、次のようなものを使用する必要があります。
^(?=.*[A-Za-z])(?=.*\d).{8,}$
任意の文字を許可する
または
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d$@$!%*#?&]{8,}$
特定の特殊文字を許可する
同様に、「最低8文字、少なくとも1つの大文字、1つの小文字、1つの数字:」
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
その最小要件を満たしていますが、使用できるのは文字と数字のみです。使用する:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$
任意の文字を許可する
または
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d$@$!%*?&]{8,}
特定の特殊文字を許可します。