次のルールで強力なパスワードを適用したい:
-1つの小文字文字-1
つの大文字文字-1
つの数字-1
つの特殊文字
インターネットを検索して、私はこれを思いついた:
^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[1-9])[a-zA-Z1-9]{8,}$
しかし、それはrubular.comにいくつかの助けを持ちこたえませんか?
次のルールで強力なパスワードを適用したい:
-1つの小文字文字-1
つの大文字文字-1
つの数字-1
つの特殊文字
インターネットを検索して、私はこれを思いついた:
^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[1-9])[a-zA-Z1-9]{8,}$
しかし、それはrubular.comにいくつかの助けを持ちこたえませんか?
これを試して:
^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9]).{8,}$
説明:
(?=.*[a-z])
パスワードには、どこかに小文字が含まれている必要があります。
(?=.*[A-Z])
パスワードには、どこかに大文字が含まれている必要があります。
(?=.*[!@#$&*])
パスワードには、どこかに記号が含まれている必要があります。
(?=.*[0-9])
パスワードには数字が含まれている必要があります。
これらはすべて先読みです。つまり、実際に試合に含めたり、試合の位置を前に進めたりせずに、それぞれが何かをテストします。したがって、これらすべてのテストの後、一致に関する限り、文字列の先頭にいます。
.{8,}
パスワード全体には8文字以上が含まれている必要があります。(^
と$
は文字列の最初と最後に固定されるため、文字列全体が一致するようになります)。
オリジナルの問題はでした[a-zA-Z1-9]{8,}
。この部分は、パスワード全体が8つ以上の文字と数字で構成されている必要があることを意味しました。これは、特殊文字が存在するという以前の要件と矛盾していました。また、オリジナルはゼロを数として数えませんでした、それは私がかなりばかげていると思いました。