1

ASP.NETプロジェクトのパスワード要件の正規表現で少し苦労しています

アウト要件は次のとおりです

  • 8文字以上である必要があります
  • 次の4つのうち少なくとも3つが必要です。
    • 大文字を少なくとも1つ持つ
    • 少なくとも1つの小文字を使用する
    • 少なくとも1つの特殊文字を持っている
    • 少なくとも1つの番号を持っている

私が使用している正規表現は次のとおりです(これは、web.config xmlファイルで使用するためにエスケープおよびエンコードされています:

passwordStrengthRegularExpression="^.*(?=.{8,})(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()\?\+\,\-\.\/\:\:\;\<\=\>\[\]\\_\`\{\|\}\~\"\']).*$"

要件の1つをオプションにする方法がわかりません。

パスワードReaction7で十分ですが、特殊文字がないため拒否されます。

長さ以外の4つの要件のうち3つを評価するために私ができることを誰かが知っていますか?

4

1 に答える 1

1

このソリューションが好きかどうかはわかりませんが、使用する正規表現が1つだけに制限されている場合(これはケースのように見えます)、パイプまたはグループですべての可能性を列挙できます。

passwordStrengthRegularExpression="^.*(?=.{8,})((?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()\?\+\,\-\.\/\:\:\;\<\=\>\[\]\\_\`\{\|\}\~\"\'])|(?=.*[a-z])(?=.*\d)(?=.*[!@#$%^&*()\?\+\,\-\.\/\:\:\;\<\=\>\[\]\\_\`\{\|\}\~\"\'])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()\?\+\,\-\.\/\:\:\;\<\=\>\[\]\\_\`\{\|\}\~\"\'])|(?=.*[a-z])(?=.*[A-Z])(?=.*\d)).*$"

それはかなり長いですが、仕事を成し遂げます。ただし、5番目の要件を追加すると、この文字列のサイズが爆発するため、正確に「拡張可能」ではありません。

于 2012-10-17T16:37:40.733 に答える