NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
電話番号 Regex JavaScript バリデーター

電話番号 Regex JavaScript バリデーター

電話番号 Regex JavaScript バリデーターを使えば、数値文字列が有効な電話番号フォーマットに従っているかどうかをJavaScript regexで即座に確認できます。コンタクトフォーム、サインアップフロー、または電話入力をキャプチャするウェブアプリに最適です。JavaScript Regex Testerと一緒に使って独自のパターンを構築・改良したり、Email Regex JavaScript バリデーターと組み合わせてコンタクトフォームの完全な検証を行ったりすることができます。検証済みの番号をBase64 エンコーダーでエンコードしたり、Tokenジェネレーターで電話ベースのログインシステム用にセキュアなtokenを生成したりすることもできます。

電話番号 Regex JavaScript バリデーター - ドキュメント

電話番号Regexとは何ですか?

電話番号regexは、文字列が有効な電話番号フォーマットにマッチするかどうかを確認する正規表現パターンです。パターンは以下に基づいて異なります。

  • 国のフォーマット

  • 携帯電話か固定電話か

  • +、-、(、)、スペースなどの記号の使用

JavaScriptの電話番号Regexパターン

基本的な国際電話番号Regex:

/^\+?[0-9]{1,4}?[-.\s]?(\(?\d{1,5}?\)?)[-.\s]?\d{1,5}[-.\s]?\d{1,9}$/

パターンの内訳:

  • ^\+?: 国番号用のオプションの+

  • [0-9]{1,4}?: 国番号の桁

  • [-.\s]?: オプションの区切り文字

  • (\(?\d{1,5}?\)?): 括弧あり・なしのオプションの市外局番

  • \d{1,5}: プレフィックスまたは番号セクション

  • \d{1,9}: 番号の最後の部分

  • $: 文字列の末尾

コード例 1 - 基本的な電話番号検証

const phone = "+91-9876543210";
const pattern = /^\+?[0-9]{1,4}?[-.\s]?(\(?\d{1,5}?\)?)[-.\s]?\d{1,5}[-.\s]?\d{1,9}$/;

console.log(pattern.test(phone)); // true

コード例 2 - 複数の番号を検証する

const numbers = ["+1 800-123-4567", "1234567890", "(011) 2345 6789"];

const pattern = /^+?[0-9]{1,4}?[-.\s]?((?\d{1,5}?)?)[-.\s]?\d{1,5}[-.\s]?\d{1,9}$/;

numbers.forEach(num => { console.log(${num} → ${pattern.test(num)}); });

コード例 3 - ウェブフォームの入力を検証する

<input type="text" id="phoneInput" placeholder="電話番号を入力してください" />
<p id="status"></p>

<script> const pattern = /^+?[0-9]{1,4}?[-.\s]?((?\d{1,5}?)?)[-.\s]?\d{1,5}[-.\s]?\d{1,9}$/;

document.getElementById("phoneInput").addEventListener("input", function () { const isValid = pattern.test(this.value.trim()); document.getElementById("status").textContent = isValid ? "✅ 有効な番号" : "❌ 無効な番号"; }); </script>

一部の電話番号が検証に失敗する理由

(000) 999-5555のような番号が特定のregexパターンに通らない場合、区切り文字の一貫性チェックが原因である可能性があります。最初の区切り文字(スペースなど)をキャプチャグループで記録し、その後同じ文字を要求するパターンでは、スペースとダッシュが混在する番号は失敗します。混在した区切り文字を許可するには、区切り文字の各位置を独立してマッチさせるようにパターンを調整してください。

後方参照(\1)で区切り文字の一貫性を保つ

  • ([-\s.])?: 市外局番または番号セクションの後のオプションの区切り文字をキャプチャします。

  • \1: キャプチャした区切り文字が繰り返されることを要求します。

混在した区切り文字を許可したい場合は、後方参照\1を削除して任意の区切り文字パターンに置き換えます。

国別の桁数要件

  • アルゼンチン: 合計8〜13桁、または3〜6桁と4〜7桁のハイフン区切り形式

  • 米国: 国番号を除いて最低10桁

  • EU: 多くのEU諸国は国番号を除いて9桁

  • インド: ちょうど10桁(国際形式では+91が先頭)

  • 中国: 通常10〜11桁(国際形式では+86が先頭)

NANPルールに準拠したRegexの確保

NANP(北米番号計画)に厳密に準拠した検証を行いたい場合:

  • 市外局番と交換番号のフォーマット: 市外局番と次の3桁は2〜9の数字で始まる必要があります(0または1は不可)。

  • N11制限: 標準の市外局番と交換番号は"11"で終わってはなりません(800、900などは例外)。

  • 構造: NXX-NXX-XXXXN=[2-9]、X=[0-9])

プロのヒント

  • ユーザーからの誤ったスペースを除去するために常に.trim()を使用してください。

  • インドの携帯番号のみが必要な場合は、/^[6-9]\d{9}$/にシンプル化してください。

  • 厳密に10桁が必要な場合:
    return value.match(/\d/g).length === 10;

  • ローカル番号を検証する場合は、国ごとに特定のパターンを使用してください。

  • 数字、+、-、(、)、スペース以外の文字は許可しないようにしてください。

  • グローバルアプリでは、さまざまな国際形式でテストしてください。

ユースケース

  • サインアップフォーム: ユーザーが入力した電話番号を即座に検証

  • CRMシステム: データベースに追加する前に電話番号をフィルタリングしてクリーニング

  • マーケティングオートメーション: SMSキャンペーン送信前に正確な番号を確保

  • 予約アプリ: フォームとコールバックフローでの無効なユーザー入力を回避

組み合わせをお勧めするツール

Frequently Asked Questions

このregexはすべてのグローバル形式を検証できますか?

多くの形式をカバーしていますが、特定の国には独自のパターンが必要な場合があります。

番号がアクティブかどうかを検証しますか?

いいえ。Regexはフォーマットのみを確認します。ライブ検証のためにはSMS OTPサービスと統合してください。

括弧が許可されているのはなぜですか?

多くのユーザーが市外局番を(123)のようにフォーマットするためで、regexでは有効です。

プラス記号(+)は必須ですか?

オプションです。パターンは番号に応じてあり・なしどちらでも機能します。

regexの前にユーザー入力をクリーンにする最善の方法は何ですか?

.trim()を使用し、オプションで.replace(/\s/g, "")を使って余分なスペースを削除してください。

電話番号で特定の文字(数字、+、()、-、.、スペース)のみを許可する正規表現はどのように作成しますか?

/[^0-9+() -.]/gを使用してください。このパターンは数字、プラス、括弧、スペース、ピリオド、またはハイフン以外の文字にマッチし、ユーザー入力から不要な記号を素早く見つけて削除するのに役立ちます。

国に基づいて電話番号検証の最小・最大桁数をカスタマイズすることが重要なのはなぜですか?

電話番号のフォーマットは地域によって大きく異なります。例えば、米国の番号は最低10桁が必要ですが、多くのEU諸国は9桁(先頭のゼロや国番号を除く)を使用します。インドや中国では国番号の後に10〜11桁の場合があります。

APIのテストを今すぐ始めましょう!

平易な英語で記述するだけで、Qodexがセキュアですぐに実行できるテストに変換します。