https://a.storyblok.com/f/270183/1368x665/0e228316b7/what-is-e164.png

E.164フォーマットとは?

最終更新日 October 23, 2024

所要時間:1 分

この記事は2026年6月に更新されました

E.164は、世界中の各ユーザーが固有の電話番号を持つことを保証し、電話やメッセージのために相互に接続することを可能にする電話番号スキームを定義する国際規格である。その結果、この規格は は国際電話を簡素化し、間違った番号にダイヤルするリスクを低減します。

E.164規格によると E.164規格E.164規格によると、電話番号の指定方法には、地理的エリア、グローバルサービス、ネットワークなど、さまざまな方法があります。この記事では 地域これはVonage APIで使われている形式です。

E.164フォーマット

E.164の電話番号は、先頭の記号を除いて最大15桁で、次のような形式です。 +記号を除いた最大15桁で、以下の書式に従う:

[国番号] [国宛先コード] [加入者番号]

どこだ?

  • 国コード(CC)国際的な 国別通話コード(1~3桁)に対応する。慣習上、国際電話番号は国番号の前にプラス記号(+)を付けて表されます。

  • ナショナル・デスティネーション・コード(NDC)国内の特定の地域、地域、ネットワークを識別する。

  • 加入者番号(SN)はユーザーに割り当てられた個別の電話番号。NDCとSNの長さは15からCCの長さを引いたものでなければならない。


米国

電話番号212 123 1234は、E.164形式を使用して+12121231234と表すことができます:

  • +1がアメリカの国番号。

  • 212はNDCだ。

  • 1231234は加入者番号。

イギリス

電話番号 020 1234 5678は、E.164形式では+4と表せます。42012345678、ここで

  • +44はイギリスの国番号です。

  • 20はロンドンのNDCである。

  • 12345678は加入者番号である。

スペイン

電話番号91 234 5678は、E.164では+34912345678と表されます:

  • +34はスペインの国番号です。

  • 91はマドリードのNDC。

  • 2345678は加入者番号。

ドイツ

電話番号 030 12345678 は E.164 では +493012345678 と表されます:

  • +49はドイツの国番号です。

  • 30はベルリンのNDCである。

  • 12345678は加入者番号。

なぜE.164が重要なのか?

私たちのAPIの多くは、E.164標準に従って電話番号を使用しています。特にネットワークAPIでは、APIコンシューマーがいくつかのエンドポイントを呼び出す際に、この形式に従うことを期待している。

例えば Identity Insights APIは、加入者の電話番号を E.164 形式で受け付ける。SIM が最近その番号にリンクされたかどうか、元のキャリアと現在のキャリアなどの情報が返される。

E.164電話番号を検証するには?

開発者として、ユーザーの入力が正しいことを確認することは不可欠である。これには、APIコールを行う前に、電話番号がE.164フォーマットに従っていることをサニタイズ、検証、確認することが含まれる。これは時間と帯域幅の節約になる。

一つの解決策は、電話番号の検証を助ける既存のライブラリの一つを使うことである。

をチェックしてみてください。 電話ライブラリをチェックしたいかもしれない。.次の例は、電話番号のバリデーションです:

const {phone} = require('phone');

phone('+1(817) 569-8900', {country: 'USA'}); 

/* 
{  isValid: true, 
    phoneNumber: '+18175698900', 
    countryIso2: 'US', 
    countryIso3: 'USA', 
    countryCode: '+1'
}
/*

Pythonプログラマーなら、 phonenumbersはあなたのライブラリです。以下はその例です:

import phonenumbers

my_number = phonenumbers.parse("+34911234567", "ES")
print(phonenumbers.is_valid_number(my_number)) # True

別の方法として、正規表現を使って独自のバリデータを作成することもできます。正規表現言語にもよりますが、次のようなものです:

^\+?[1-9]\d{1,14}$

次のPythonコードは、この正規表現を使って入力データを検証する:

import re

def validate_e164(phone_number):
    pattern = r'^\+?[1-9]\d{1,14}$'
    return bool(re.match(pattern, phone_number))

# Test the function
test_numbers = [
    "+14155552671",      # Valid E.164 number (US)
    "+442071838750",     # Valid E.164 number (UK)
    "+493012345678",     # Valid E.164 number (Germany)
    "+34916543210",      # Valid E.164 number (Spain)
    "1234567890",        # Invalid (missing +)
    "+1234567890123456"  # Invalid (too long)
]

for number in test_numbers:
    print(f"{number}: {validate_e164(number)}")

連絡を取る

この記事では、E.164電話番号形式とその構造、およびVonage APIにリクエストを送信する前に電話番号を検証するためのいくつかのアプローチについて説明した。次のステップとして、Vonage Identity Insight APIまたはE.164形式の番号に依存する他のNetwork APIを調べることができる。

ご質問がある場合、またはあなたが作っているものを共有したい場合は、こちらをクリックしてください。

最新の開発者向けニュース、ヒント、イベント情報をお届けします。

シェア:

https://a.storyblok.com/f/270183/405x400/2b811a162d/alvaro-navarro.jpg
Alvaro Navarroヴォネージの卒業生

アルバロは、かつてVonageチームの一員でした。Vonageではデベロッパー・アドボケイトとして、ネットワークAPIを専門に担当していました。デベロッパー・エクスペリエンス、API、オープンソースに情熱を注いでいます。仕事以外では、コミックショップを巡ったり、SFやホラーのフェスティバルに参加したり、あの有名な小さなプラスチックのブロックを使って何かを作ったりしている姿をよく見かけます。