Si te encuentras con algún detalle que no comprendes puedes dejarlo en los comentarios y haremos todo lo posible de ayudarte lo más rápido posible.
Solución:
La recomendación ITU-T E.164 dice que necesita 3 dígitos para el código de país y hasta 15 dígitos para el número de directorio dentro del plan de marcación del país.
Y, muchas personas agregan algo de puntuación. Por ejemplo:
+1.212.555.1212 es un número norteamericano. También podría representarse (212) 555-1212 en una aplicación centrada en América del Norte.
32 caracteres de texto deberían ser suficientes en todo el mundo.
NO use un número, o lo lamentará. Yo era: dos cosas.
- Perdió algunos negocios europeos para una empresa porque asumimos que todos los números de teléfono eran números de diez dígitos que cumplían con NANP.
- Una exportación de hoja de cálculo representó los números en notación científica
2.12555E+09
Eso es casi tan estúpido como SIRI diciéndome Tienes una llamada de dos billones, ciento veinticinco millones….
Números de directorio telefónico no son tipos de datos numéricos. Eche un vistazo a esto: Las falsedades que creen los programadores sobre los números de teléfono.
debe ser un string
ya que el número de teléfono excederá el límite de int
o incluso long
. Entonces, para manejar esos escenarios string
siempre se prefiere.
Un par de cosas que es bueno tener en cuenta:
En general, un número sobre el que no planea hacer cálculos debe almacenarse como una forma de string. Si necesita que el número pueda comenzar con un cero (como lo hace, porque algunos números de teléfono lo hacen), esto es esencial.
Ergo, incluso si (o cuando) puede almacenar un número de teléfono como un número entero enorme (puede hacerlo con números enteros de 64 bits), no debería hacerlo. Perderá datos tan pronto como un número comience con un cero.
Al almacenar un número de teléfono, recuerde que el código de país es un tipo especial de información. Lo mejor sería separarlo del resto del número cuando lo almacene. De esta manera, puede consultar fácilmente los números de teléfono por país y no tendrá que lidiar con el análisis del número más de una vez (antes de almacenarlo, en lugar de cada vez que lo busque). Además, si almacena un número de teléfono junto con el código de país, deberá validarlo para asegurarse de que siempre almacenar el código de país, porque dos números de dos países diferentes podrían ser potencialmente idénticos si uno tiene un código de país y el otro no.
Recuerde también que la puntuación es un método de presentación y, por lo tanto, no tiene nada que ver con la forma en que almacena los datos. Siempre puede optar por presentar los datos de la forma que desee, y la forma en que desee dependerá en todos los casos de una serie de factores. Por ejemplo, qué tipo de datos está presentando, a quién se los está presentando y, en algunos casos, incluso cuando usted está presentando los datos. En el caso de los números de teléfono, debe almacenar el número como un stringsin ninguno de los signos de puntuación.
Le recomendaría que consulte la biblioteca de Google para analizar, formatear y validar números de teléfono internacionales (https://github.com/googlei18n/libphonenumber). Puede ingresar a esta biblioteca su número de teléfono y código de país, y le brindará mucha información útil al respecto, como si el número es posible y válido, a qué región pertenece, qué tipo de número es, etc. .
Consejo profesional I: Proporcione a sus usuarios una forma de seleccionar a qué país pertenece el número, en lugar de pedirles que escriban el código de país. Mejor para usted y mejor para sus usuarios.
Consejo profesional II: Rara vez existe algo como una “aplicación centrada en América del Norte” o una “aplicación centrada en insertar región aquí”, especialmente si su aplicación está disponible en la web. Ocurre, pero es raro, por lo que sería prudente preparar su aplicación para el mundo, en lugar de una parte más pequeña de él.