Git Product home page Git Product logo

nuwe-phone-validation's Introduction

Sobre el desafio

Devuelve true si la cadena pasada concuerda con un número de teléfono válido en España.

El usuario puede completar el campo del formulario de la forma que elija, siempre que tenga el formato de un número español válido. Los siguientes ejemplos son de formatos válidos para números españoles (consulte las pruebas a continuación para otras variantes):

972-35-56-57

(972)355-567

972-355-567

972 355 567

972355567

34 972 355 567

Para este desafío se te presentará una cadena como 972355567 o 8oo-six427676;laskdjf. Tu trabajo es validar o rechazar el número de teléfono español basado en cualquier combinación de los formatos proporcionados arriba. El código de área es obligatorio. Si el código de país es proporcionado, debes confirmar que el código de país es 34. Devuelve true si la cadena es un número de teléfono español valido; de lo contrario devuelve false.

Solución

Se ha implementado una función que valida un número de teléfono español a partir de expresiones regulares. La expresión regula evalúa:

  1. (opcional) El numero empieza por 34| group#1
  2. El numero tiene 3 primeros digitos que pueden estar entre parentesis o no. Puede venir seguido o precedido por un espacio, - o nada | group#2
  3. Todos los digitos restantes pueden venir seguidos, en grupos de 2 o en grupos de 3. En caso de venir en grupos irían separados por un espacio o un - | group#5

^(34)([-\s]?(\([0-9]{3}\))|[-\s]?([0-9]{3}))((([-\s]?)[0-9]{3}){2}$|(([-\s]?)[0-9]{2}){3}$) Expresión regular

Cómo probar el código

Para comprobar que funciona bien en todos los casos propuestos se ha implementado una batería de tests con Pytest

Para preparar el entorno ejecutar el siguiente comando:

conda env create -f env.yaml
conda activate nuwe-phone-validation

Para ejecutar los tests ejecutar el siguiente comando:

pytest -v

El resultado de los tests se puede ver en la captura siguiente Expresión regular

nuwe-phone-validation's People

Contributors

albertferre avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.