
電話番号 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-XXXX(N=[2-9]、X=[0-9])
プロのヒント
ユーザーからの誤ったスペースを除去するために常に
.trim()を使用してください。インドの携帯番号のみが必要な場合は、
/^[6-9]\d{9}$/にシンプル化してください。厳密に10桁が必要な場合:
return value.match(/\d/g).length === 10;ローカル番号を検証する場合は、国ごとに特定のパターンを使用してください。
数字、+、-、(、)、スペース以外の文字は許可しないようにしてください。
グローバルアプリでは、さまざまな国際形式でテストしてください。
ユースケース
サインアップフォーム: ユーザーが入力した電話番号を即座に検証
CRMシステム: データベースに追加する前に電話番号をフィルタリングしてクリーニング
マーケティングオートメーション: SMSキャンペーン送信前に正確な番号を確保
予約アプリ: フォームとコールバックフローでの無効なユーザー入力を回避
組み合わせをお勧めするツール
JavaScript Regex Tester: カスタム電話番号regexパターンを構築・テスト
Email Regex JavaScript バリデーター: 電話とメールの両方を収集するフォームで使用
UUID Regex JavaScript バリデーター: 電話番号検証後にUUIDでユーザーにタグ付け
Base64 エンコーダー: ストレージやAPIのために検証済み電話番号をセキュアにエンコード
Tokenジェネレーター: OTPまたはSMS認証を使ったサインアップ検証フローで使用
Frequently Asked Questions
このregexはすべてのグローバル形式を検証できますか?
番号がアクティブかどうかを検証しますか?
括弧が許可されているのはなぜですか?
プラス記号(+)は必須ですか?
regexの前にユーザー入力をクリーンにする最善の方法は何ですか?
.trim()を使用し、オプションで.replace(/\s/g, "")を使って余分なスペースを削除してください。電話番号で特定の文字(数字、+、()、-、.、スペース)のみを許可する正規表現はどのように作成しますか?
/[^0-9+() -.]/gを使用してください。このパターンは数字、プラス、括弧、スペース、ピリオド、またはハイフン以外の文字にマッチし、ユーザー入力から不要な記号を素早く見つけて削除するのに役立ちます。国に基づいて電話番号検証の最小・最大桁数をカスタマイズすることが重要なのはなぜですか?
Related Articles






