Te uniste a LinkLine, una empresa líder en comunicaciones que trabaja para garantizar conexiones confiables para todos. El equipo enfrenta un gran desafío: los usuarios envían números de teléfono en todo tipo de formatos, como guiones, espacios, puntos, paréntesis e incluso prefijos. Algunos números son válidos, mientras que otros son imposibles de usar.
Tu misión es convertir este caos en orden. Limpiarás los números válidos y les darás el formato adecuado para usarlos en el sistema. Al mismo tiempo, identificarás y filtrarás las entradas que no sean válidas.
El éxito de las operaciones de LinkLine depende de tu capacidad para separar lo útil de lo inútil. ¿Estás listo para asumir el desafío y mantener las conexiones funcionando sin problemas?
Limpia números de teléfono para que se les puedan enviar mensajes SMS.
El Plan de Numeración de América del Norte (NANP) es un sistema de numeración telefónica que usan muchos países de América del Norte, como Estados Unidos, Canadá o Bermudas.
Todos los países del NANP comparten el mismo código de país internacional: 1.
Los números del NANP son números de diez dígitos que constan de un código de tres dígitos del plan de numeración, conocido comúnmente como código de área, seguido de un número local de siete dígitos. Los primeros tres dígitos del número local representan el código de central, seguido del número único de cuatro dígitos, que es el número de abonado.
El formato se representa normalmente como
NXX NXX-XXXX
donde N es cualquier dígito del 2 al 9 y X es cualquier dígito del 0 al 9.
A veces también llevan antepuesto el código de país (representado como 1 o +1).
Tu tarea es limpiar números de teléfono con distintos formatos, eliminando la puntuación y el código de país, si está presente.
Por ejemplo, los siguientes números
+1 (613)-995-0253613-995-02531 613 995 0253613.995.0253deben producir todos la salida
6139950253
Nota: Como este ejercicio solo trata números de teléfono usados en países del NANP, solo el 1 se considera un código de país válido.
Además de la función numbers, que limpia los números de teléfono, necesitas escribir dos funciones más en la pista de Emacs Lisp: area-code y pprint.
Cada una de las funciones adicionales recibe el número de teléfono como su único parámetro.
La primera función, area-code, extrae el código de área del argumento, mientras que la segunda, pprint, transforma el argumento en un string con el formato de
(NXX) NXX-XXXX
donde N y X son como se describen arriba.
Regístrate en Exercism para aprender y dominar Emacs Lisp con 96 ejercicios y mentoría humana real, todo gratis.