JA
マイツール

パスワード正規表現ジェネレーター&テスター

長さ、小文字、大文字、数字、記号、空白禁止、繰り返し禁止のルールから、JavaScript、PHP、Python、Java、.NET、HTML用のパスワード検証正規表現を作成します。

コード
正規表現
通過したサンプル
2
全6件中

構成ルールは強度を測る指標としては弱く、長さが最も重要です。NIST SP 800-63Bは、8文字以上(単一要素認証では15文字以上)、64文字以上を許可すること、文字種を求める代わりに漏えいしたパスワードのリストと照合することを推奨しています。

テスト結果
パスワード結果理由
Passw0rd!合格—
password不合格大文字なし、数字なし、記号なし
Sh0rt!不合格短すぎる(6文字)
Aaa111!!!x不合格「111」の繰り返し
Good Pass1!不合格空白を含む
Tr0ub4dor&3合格—
マイツール →
広告

登録フォームでは、たいてい正規表現でパスワードのルールを強制します。最小の長さ、小文字・大文字・数字・記号をそれぞれ1文字以上、空白なし、といったものです。このようなパターンを手で書くには、先読みを正しく積み重ね、言語ごとに記号をエスケープする必要があります。必要なルールにチェックを入れると、JavaScript、PHP、Python、Java、C#、HTMLのpattern属性向けのコードつきの正規表現ができあがり、サンプルのパスワードを貼り付ければ、どれが通り、それぞれがどのルールに違反するのかが正確にわかります。

使い方

  1. 最小と最大の長さを設定します。
  2. 必ず含める文字の種類にチェックを入れ、特定の記号の集合にしたい場合は許可する記号を書きます。
  3. 空白と3回連続の繰り返しを禁止するかどうかを選びます。
  4. 言語を選んでコードをコピーします。
  5. テスト用のパスワードを1行に1つずつ入力して、ルールを確認します。

計算式

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[記号])(?!.*\s)(?!.*(.)\1\1).{最小,最大}$

(?=.*X)はそれぞれ、どこかにXがあることを求める先読みで、(?!.*\s)は空白を、(?!.*(.)\1\1)は同じ文字の3回連続を禁止します。最後の部分が長さ(「次のみ許可」を使う場合は許可する文字)を決めます。記号は言語ごとにエスケープされます。JavaScript(uフラグ)、PCRE、Python、Java、.NETは\ ] [ ^ -をエスケープし、vフラグでコンパイルされるHTMLのpattern属性では、ほとんどの句読点をエスケープする必要があります。

計算例

既定のルール(8〜64文字、4種類すべて、空白なし、3回連続なし)では、6つのサンプルのうち2つが通ります。Passw0rd!とTr0ub4dor&3です。「password」には大文字、数字、記号がなく、「Sh0rt!」は6文字しかなく、「Aaa111!!!x」は1と!を3回繰り返しており、「Good Pass1!」には空白が含まれています。

よくある質問

正規表現だけでパスワードは安全になりますか?

いいえ。正規表現は形式を強制するだけです。文字の種類よりも長さのほうがはるかに重要で、NIST SP 800-63Bは、新しいパスワードを漏えいしたパスワードのリストと照合することと、長いパスフレーズを許可することを勧めています。検証は、ブラウザだけでなく必ずサーバーでも行ってください。

^と$ではなく\Aと\zを使うのはなぜですか?

PCRE、Python、Java、.NETでは、$は末尾の改行の前にも一致するため、「Passw0rd!\n」がすり抜けてしまいます。\z(Pythonでは\Z、PHPでは/D付きの$)は、本当の末尾でしか一致しません。

絵文字やアクセント付きの文字はどう数えますか?

uフラグ付きのJavaScript、/u付きのPHP、Pythonはコードポイントを1つと数え、Javaと.NETはUTF-16単位で数えるため、絵文字は2になります。éのような文字はa–zに含まれないため、既定の記号ルールでは記号として扱われます。

出典

最終更新:

このツールを引用する
APA

kakaoCalc. (2026, November 8). パスワード正規表現ジェネレーター&テスター. https://kakao.mobile/ja/tools/password-regex-tool/

MLA

“パスワード正規表現ジェネレーター&テスター.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/password-regex-tool/.

広告