正規表現は私の強みではありませんが、パスワードが 8 ~ 20 文字で、少なくとも 1 つの数字と 1 つの大文字と小文字が含まれていることを検証するために以下を使用していました。
((?=.*\d)(?=.*[A-Z])(?=.*[a-z]).{8,20})
すべてのパスワードが無効として返される Internet Explorer でテストするまで、すべて正常に機能していました。
これは、ここで説明されている Internet Explorer 7 のバグによるものですIE7 regex issue - すべてのブラウザーで機能する正規表現が ie7 では機能しない
上記の質問に関するブログ投稿に続いて、ほとんどの場合、IE7 で動作するように正規表現を作り直すことができると言う人もいますが、私の正規表現の知識は最善ではありません。上記のIE7での作業は素晴らしいでしょう。
私はASP.NETを使用しているので、別のオプションはEnableClientScriptをFalseに設定して、正規表現がサーバー側でチェックされるようにすることですが、可能であれば最初にクライアント側でチェックしたいと思います。