validation - telefono - ¿Cuál es la longitud mínima de un número de teléfono internacional válido?
prefijos telefonicos internacionales (3)
La longitud mínima es de 4 para Santa Elena (Formato: +290 XXXX) y Niue (Formato: +683 XXXX).
Necesito validar la entrada del usuario de un número de teléfono internacional. De acuerdo con E.164, la longitud máxima es de 15 dígitos, pero no pude encontrar ninguna información sobre el mínimo. Considero solo dígitos, sin signo más o separadores.
Según diferentes fuentes, creo que la longitud mínima en formato E-164 depende de un país a otro. Por ejemplo:
- Para Israel : la longitud mínima del número de teléfono (excluyendo el código del país) es de 8 dígitos. - Fuente oficial (Código de país 972)
Para Suecia : la longitud mínima del número (excluyendo el código del país) es de 7 dígitos. - Fuente oficial (código de país 46)
Para las Islas Salomón es 5 para teléfonos de línea fija. - Source (código de país 677)
... y así. Entonces, incluyendo el código de país, la longitud mínima es de 9 dígitos para Suecia y 11 para Israel y 8 para las Islas Salomón.
Editar (Solución limpia) : en realidad, en lugar de validar un número de teléfono internacional con cheques diferentes como la duración, etc., puede usar la biblioteca libphonenumber de Google . Puede validar un número de teléfono en formato E164 directamente. Tendrá en cuenta todo y ni siquiera tendrá que dar el país si el número está en formato E164 válido. ¡Es bastante bueno! Tomando un ejemplo:
String phoneNumberE164Format = "+14167129018"
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber phoneNumberProto = phoneUtil.parse(phoneNumberE164Format, null);
boolean isValid = phoneUtil.isValidNumber(phoneNumberProto); // returns true if valid
if (isValid) {
// Actions to perform if the number is valid
} else {
// Do necessary actions if its not valid
}
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}
Si conoce el país para el que está validando los números, ni siquiera necesita el formato E164 y puede especificar el país en la función .parse
en lugar de pasar el null
.
EDITAR 2015-06-27: el mínimo es en realidad 8, incluido el código de país. Mi error.
Publicación original
El número de teléfono mínimo que uso es de 10 dígitos. Los usuarios internacionales siempre deben poner su código de país, y hasta donde yo sé, no hay países con menos de diez dígitos si se cuenta el código de país.
Más información aquí: https://en.wikipedia.org/wiki/Telephone_numbering_plan