[解決済み] パスワードが「大文字1文字、特殊文字1文字、英数字を含む8文字」であるかどうかをチェックする正規表現
質問
以下のことを確認するための正規表現が必要です。
パスワードは、大文字1文字、特殊文字1文字、英数字を含む8文字でなければならない。
そしてこれが私の検証式です。大文字1つ、小文字1つ、数字または特殊文字1つを含む8文字である必要があります。
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
大文字1文字、特殊文字1文字、英数字を含む8文字のパスワードの場合、どのように書けばよいのでしょうか?
どのように解決するのですか?
正規表現は巨大になる可能性が高く、特に正規表現にあまり慣れていない人にとっては、維持するのが悪夢のようなものです。
正規表現を分解して、一度に少しずつ行う方が簡単だと思います。実行するのに少し時間がかかるかもしれませんが、メンテナンスとデバッグがより簡単になることは間違いありません。また、この方法によって、ユーザに対してより直接的なエラーメッセージを提供できるようになります (単に
Invalid Password
以外の)より直接的なエラーメッセージを提供できるようになり、ユーザーエクスペリエンスが向上するはずです。
私が見ている限り、あなたは正規表現にかなり堪能なので、あなたが必要とすることを行うために正規表現を与えることは無駄であると推測されます。
あなたのコメントを見て、私はこのようにします。
-
8 文字でなければならない 長さ: 正規表現は必要ありません。このために
.Length
プロパティを使用すれば十分です。 -
大文字1文字を含む。大文字と小文字を区別するために
[A-Z]+
という正規表現を使うことができます。文字列が少なくとも一つの大文字を含んでいる場合、この正規表現はtrue
. -
特殊文字1つ。のどちらかを使用することができます。
\W
を使うと、文字や数字以外のあらゆる文字にマッチします。[!@#]
を使って、特殊文字のリストを指定することができます。しかし、次のような文字は$
,^
,(
と)
は正規表現言語の特殊文字なので、このようにエスケープする必要があります。\$
. ですから、要するに\W
. -
英数字を を使うことで
\w+
を使用すると、任意の文字と数字、アンダースコアにマッチするはずです。
を見てみましょう。 この チュートリアルをご覧ください。
関連
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】なぜこのコードはInvalidOperationExceptionを投げるのですか?
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] \0-9]よりも効率が悪い
-
[解決済み] 数字しか入力できないテキストボックスの作り方を教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】Moqを使用してメソッド呼び出しを検証する
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。