よく使う正規表現テンプレ8選 ― メール・URL・電話番号などのバリデーション

メール・URL・電話番号・郵便番号など、フォームバリデーションでよく使う正規表現テンプレを8パターン収録。コピペで即使えます。

「メアドの正規表現どう書くんだっけ…」とググって、いろんな記事を見比べて疲れて、結局よく分からないままコピペする…これ、自分も毎回やってます(- -;

そこで「もう探さなくて済むように」と思って、用途別の実用パターンをここに集約しました。

気をつけたいポイントは下記。

下記テンプレはどれもJavaScript想定ですが、他言語でもほぼそのまま動くので、必要に応じて調整してください!

1. メールアドレス(実用レベル)

用途: フォームでメールアドレスのフォーマットチェック

/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/

メアド正規表現は 「実用レベル」と「完璧」を分けて考えるのが大事。

RFC準拠の完璧な正規表現は数千文字あるので、個人サイトや簡易フォーム用途では上記くらいで十分です。
ちなみに自分が以前、独自正規表現でゴリゴリ判定するフォームを作ったら、+ 付きの Gmail([email protected])を弾いてしまって本物の問い合わせメールを取り逃した、という痛い経験があります。最終チェックはメール送信して確認するのが結局確実なんですよね(^^;

2. URL(http/https)

用途: テキスト中のURLを検出したり、入力されたURLをチェックするとき

/^https?:\/\/[^\s/$.?#][^\s]*$/

上記は http または https で始まるURLを判定する実用パターン。

ftpや独自スキームまで対応したい場合は https?[a-z]+ に拡張してください。

なお厳密なURLバリデーションは new URL(str) で try/catch する方が確実です。正規表現はあくまで簡易チェック用ですね(^^!

3. 日本の電話番号(ハイフン有無対応)

用途: 携帯・固定電話のチェック

/^0\d{1,4}-?\d{1,4}-?\d{4}$/

日本の電話番号は **「先頭0 + 数字 + ハイフン任意」**で大体カバーできます。

フリーダイヤルや国際電話まで対応したい場合は、別途分岐させた方が読みやすいです(^^;

4. 日本の郵便番号

用途: 7桁の郵便番号を、ハイフンあり/なしで両対応

/^\d{3}-?\d{4}$/

郵便番号は 3桁+4桁のフォーマット固定。

入力時にハイフンを自動補完するならフォーム側で対応、検証だけなら上記でOKです(^^b

5. パスワードの最低限フォーマットチェック

用途: 大文字・小文字・数字を含む8文字以上のパスワードフォーマットを検証

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/

先読み(?=) を使って「全条件を満たすか」をチェックするパターン。

末尾を .{8,} にしてあるので、記号や日本語パスフレーズもそのまま通せます。
逆に「使える文字種を ASCII+記号に限定したい」場合は [A-Za-z\d!@#$%^&*]{8,} に置き換えてください(^^b

6. 日付(YYYY-MM-DD)

用途: ISO形式の日付文字列を判定

/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/

ISO日付は **「2026-05-24」**のような形。

月と日のレンジまでチェックしてあるので「2026-13-99」のような不正値は弾けます。

ただし「2026-02-30」のようにカレンダー上存在しない日付はすり抜けるので、最終的には new Date() で再検証するのが安全ですね(^^b

7. IPv4アドレス

用途: IPアドレスの形式チェック

/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d{1,2})\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d{1,2})$/

IPv4はオクテット(0-255)の範囲までチェックしてあります。

「999.999.999.999」みたいな不正なIPはちゃんと弾けるので、入力チェックに使えますね(^^!

8. ハッシュタグ(日本語対応)

用途: SNS投稿などからハッシュタグを抽出

/#[a-zA-Z0-9_぀-ヿ㐀-䶿一-鿿]+/g

日本語のひらがな・カタカナ・漢字(CJK統合漢字)を範囲指定して、g フラグで全マッチ。

Unicode範囲指定がポイントで、これがあると日本語ハッシュタグも拾えます(^^b