web-dev-qa-db-ja.com

デフォルトのASP.NET Core Identityパスワードの正規表現

:この質問は、この 質問 の複製ではないと私は信じています。私の質問は、パスワード検証のためのasp.netコアIDが持つデフォルトの検証ルールとそれを正規表現にする方法を扱っていますが、リンクされた質問は、一般にパスワードを検証する行為について議論しています(これは私の問題を解決しません)

ASP.NET Coreは、デフォルトのパスワード検証を有効にします

  1. 8文字以上
  2. 少なくとも1つの番号が必要です
  3. 少なくとも1つの大文字が必要です
  4. 少なくとも1つの小文字が必要です
  5. 少なくとも1つの特殊文字が必要です(どの特殊文字を使用できますか?)

これらの条件を念頭に置いて、私は次の正規表現を作ってみましたが、うまくいきません。

^((?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])|(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[^a-zA-Z0-9])|(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9])|(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9])).{8,}$

この正規表現は、ポイント2、3、4、5の3つの条件のいずれかが一致する場合でも文字列を受け入れます。しかし、私はすべての条件が満たされることを望みます。

ここで何が悪いのですか?

14
Karan Desai

だから、使う

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$^+=!*()@%&]).{8,}$
  • ^:最初の行
  • (?=。* [a-z]):少なくとも1つの小文字が必要です
  • (?=。* [A-Z]):少なくとも1つの大文字が必要です
  • (?=。*\d):少なくとも1つの番号が必要です
  • (?=。* [#$ ^ + =!*()@%&]):少なくとも1つの特殊文字が必要です
  • 。{8、}:8文字以上
  • $:最終行

詳細情報: this

17
MJN Belief