Tracks
/
Emacs Lisp
Emacs Lisp
/
Übungen
/
Telefonnummer
Telefonnummer

Telefonnummer

Einfach

Einführung

Du bist jetzt bei LinkLine, einem führenden Kommunikationsunternehmen, das zuverlässige Verbindungen für alle gewährleisten will. Das Team steht vor einer großen Herausforderung: Nutzer reichen Telefonnummern in allen möglichen Formaten ein, mit Bindestrichen, Leerzeichen, Punkten, Klammern und sogar Präfixen. Manche Nummern sind gültig, andere lassen sich unmöglich verwenden.

Deine Aufgabe ist es, dieses Chaos in Ordnung zu bringen. Du bereinigst gültige Nummern und formatierst sie passend für die Verwendung im System. Gleichzeitig erkennst du ungültige Einträge und filterst sie heraus.

Der Erfolg von LinkLine hängt davon ab, dass du Brauchbares von Unbrauchbarem trennen kannst. Bist du bereit, die Herausforderung anzunehmen und dafür zu sorgen, dass die Verbindungen reibungslos laufen?

Anleitung

Bereinige Telefonnummern, damit man ihnen SMS-Nachrichten senden kann.

Der North American Numbering Plan (NANP) ist ein Telefonnummernsystem, das in vielen Ländern Nordamerikas wie den Vereinigten Staaten, Kanada oder Bermuda verwendet wird. Alle NANP-Länder teilen sich dieselbe internationale Ländervorwahl: 1.

NANP-Nummern sind zehnstellige Nummern, die aus einer dreistelligen Numbering Plan Area-Nummer, allgemein bekannt als area code, bestehen, gefolgt von einer siebenstelligen lokalen Nummer. Die ersten drei Ziffern der lokalen Nummer bilden den exchange code, gefolgt von der eindeutigen vierstelligen Nummer, der subscriber number.

Das Format wird üblicherweise so dargestellt

NXX NXX-XXXX

wobei N eine beliebige Ziffer von 2 bis 9 und X eine beliebige Ziffer von 0 bis 9 ist.

Manchmal steht ihnen auch die Ländervorwahl (dargestellt als 1 oder +1) voran.

Deine Aufgabe ist es, unterschiedlich formatierte Telefonnummern zu bereinigen, indem du Satzzeichen und, falls vorhanden, die Ländervorwahl entfernst.

Zum Beispiel sollten die Eingabewerte

  • +1 (613)-995-0253
  • 613-995-0253
  • 1 613 995 0253
  • 613.995.0253

alle dieselbe Ausgabe erzeugen:

6139950253

Hinweis: Da sich diese Übung nur mit Telefonnummern befasst, die in NANP-Ländern verwendet werden, gilt nur 1 als gültige Ländervorwahl.

Implementierung

Neben der Funktion numbers, die Telefonnummern bereinigt, musst du im Emacs-Lisp-Track noch zwei weitere Funktionen schreiben: area-code und pprint.

Jede der zusätzlichen Funktionen nimmt die Telefonnummer als einzigen Parameter.

Die erste Funktion area-code extrahiert die Vorwahl aus der Eingabe, während die zweite Funktion pprint die Eingabe in einen String im folgenden Format umwandelt:

(NXX) NXX-XXXX

wobei N und X wie oben beschrieben sind.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Emacs Lisp Exercism

Bereit, mit Telefonnummer zu starten?

Melde dich bei Exercism an, um Emacs Lisp mit 96 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.