
Teilen Sie:
Alvaro ist Developer Advocate bei Vonage und konzentriert sich auf Netzwerk-APIs. Er hat eine Leidenschaft für Developer Experience, APIs und Open Source. Außerhalb der Arbeit findet man ihn oft in Comicläden, auf Science-Fiction- und Horrorfestivals oder beim Basteln mit diesen berühmten kleinen Plastikbausteinen.
Was ist das E.164-Format?
Lesedauer: 2 Minuten
E.164 ist ein internationaler Standard, der ein Telefonnummernschema festlegt, das sicherstellt, dass jeder Nutzer weltweit eine eindeutige Telefonnummer hat und sie für Anrufe und Nachrichten miteinander in Verbindung treten können. Dadurch vereinfacht der Standard vereinfacht internationale Anrufe und verringert das Risiko, eine falsche Nummer zu wählen.
Gemäß dem E.127-Normgibt es verschiedene Möglichkeiten, eine Telefonnummer zu spezifizieren: geografische Gebiete, globale Dienste, Netze, usw. Dieser Artikel verwendet die Standarddarstellung für geografische Gebieteverwendet, da dies das Format ist, das in den Vonage-APIs verwendet wird.
Das E.164-Format
E.164 besteht aus maximal 15 Ziffern und hat das folgende Format:
[Landesvorwahl] [nationale Vorwahl] [Teilnehmernummer]
wo:
Ländercode (CC) entspricht den internationalen Ländervorwahlen (1 bis 3 Ziffern). Bei internationalen Telefonnummern wird der Ländervorwahl ein Pluszeichen (+) vorangestellt.
Nationaler Bestimmungsort-Code (NDC) kennzeichnet ein bestimmtes Gebiet, eine Region oder ein Netz innerhalb des Landes.
Teilnehmernummer (SN) ist die individuelle Telefonnummer, die dem Benutzer zugewiesen wurde. Die Länge des NDC und der SN muss 15 minus der Länge des CC betragen.
Beispiele
Vereinigte Staaten
Die Rufnummer 212 123 1234 kann im E.164-Format als +12121231234 dargestellt werden, wobei:
+1 ist die Landesvorwahl für die USA.
212 ist der NDC.
1231234 ist die Teilnehmernummer.
Vereinigtes Königreich
Die Rufnummer 020 1234 5678 kann im E.164-Format als +4 dargestellt werden42012345678, wobei:
+44 ist die Landesvorwahl für das Vereinigte Königreich.
20 ist die Vorwahl für London.
1231234 ist die Teilnehmernummer.
Spanien
Die Rufnummer 91 234 5678 kann in E.164 als +34912345678 dargestellt werden, wobei:
+34 ist die Landesvorwahl für Spanien.
91 ist die Vorwahl für Madrid.
2345678 ist die Teilnehmernummer.
Deutschland
Die Rufnummer 030 12345678 kann in E.164 als +493012345678 dargestellt werden, wobei
+49 ist die Landesvorwahl für Deutschland.
30 ist die Vorwahl für Berlin.
12345678 ist die Teilnehmernummer.
Warum ist E.164 wichtig?
Viele unserer APIs verwenden Telefonnummern, die dem E.164-Standard entsprechen. Insbesondere die Netzwerk-APIs erwarten, dass API-Kunden dieses Format beim Aufruf einiger Endpunkte einhalten.
Zum Beispiel, laut der API-Referenzder /check Endpunkt die Telefonnummer des Teilnehmers im E.164-Format, um zu überprüfen, ob vor kurzem eine neue Verbindung zwischen seiner SIM-Karte und der Telefonnummer hergestellt wurde.
Wie können wir eine E.164-Telefonnummer validieren?
Als Entwickler müssen wir unbedingt sicherstellen, dass die Eingaben des Benutzers korrekt sind. Dazu gehört die Bereinigung, Validierung und Bestätigung, dass die Telefonnummer dem E.164-Format entspricht, bevor ein API-Aufruf erfolgt. Das spart uns Zeit und Bandbreite.
Eine Lösung besteht darin, eine der vorhandenen Bibliotheken zur Validierung von Telefonnummern zu verwenden.
Überprüfen Sie bitte die Telefon Bibliothek, wenn Sie in JavaScript programmieren. Das folgende Beispiel zeigt die Validierung einer Telefonnummer:
const {phone} = require('phone');
phone('+1(817) 569-8900', {country: '"USA'});
/*
{ isValid: true,
phoneNumber: '+18175698900',
countryIso2: 'US',
countryIso3: 'USA',
countryCode: '+1'
}
/*Wenn Sie ein Python-Programmierer sind, Telefonnummern ist Ihre Bibliothek. Hier ist ein Beispiel:
import phonenumbers
my_number = phonenumbers.parse("+34911234567", "ES")
print(phonenumbers.is_valid_number(my_number)) # TrueAlternativ können Sie einen eigenen Validator mit regulären Ausdrücken erstellen. Abhängig von der Regex-Sprache, etwas in der Art von:
^\+?[1-9]\d{1,14}$Das folgende Python-Programm verwendet diesen regulären Ausdruck, um einige Eingabedaten zu überprüfen:
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)}") Nehmen Sie Kontakt auf!
Wie validieren Sie die Eingaben Ihrer Benutzer? Welche Bibliothek würden Sie empfehlen? Wir würden uns über Ihr Feedback freuen! Schließen Sie sich uns auf dem Vonage Community Slack oder senden Sie uns eine Nachricht auf Xund wir werden uns bei Ihnen melden.
Vielen Dank fürs Lesen!
Teilen Sie:
Alvaro ist Developer Advocate bei Vonage und konzentriert sich auf Netzwerk-APIs. Er hat eine Leidenschaft für Developer Experience, APIs und Open Source. Außerhalb der Arbeit findet man ihn oft in Comicläden, auf Science-Fiction- und Horrorfestivals oder beim Basteln mit diesen berühmten kleinen Plastikbausteinen.