validate phone number library google regex algorithm validation phone-number

regex - library - validate phone number javascript



Verificación del número de teléfono de EE. (14)

867-5309 es un número de teléfono válido que se asigna a personas en diferentes códigos de área.

Tengo un formulario de sitio web que requiere una entrada de número de teléfono de EE. UU. Para fines de seguimiento, y esto es muy necesario en este caso. Quiero intentar eliminar usuarios que ingresan datos basura 330-000-0000 . He visto algunas opciones de terceros que validan los números de teléfono para usted, sin embargo idk si esa es la mejor opción para esta situación. Sin embargo, si ha utilizado a alguno de estos terceros y puede hacer una recomendación que también sería muy apreciada aquí.

Sin embargo, estoy considerando verificar el número con un conjunto de reglas para tratar de reducir los números de teléfono basura recibidos.

  • no es un número 555
  • no contiene 7 dígitos idénticos
  • código de área válido (esto está disponible)
  • no es un 123-1234 o 123-4567
  • Creo que también podría contar 867-5309 (heh * )

¿Esto daría lugar a cualquier situación que se le ocurra que no le permita a un usuario ingresar su número de teléfono? ¿Podría pensar en otras reglas que un número de teléfono no debería contener? ¿Algún otro pensamiento?


En Django hay un pequeño paquete contrib llamado localflavor que tiene muchos códigos de validación específicos del país, por ejemplo, códigos postales o números de teléfono. También puede buscar en la fuente para ver cómo maneja django para el país que le gustaría usar; Por ejemplo: validación de formulario de EE . UU . Este puede ser un gran recurso para obtener información sobre países de los que también conoce poco.


En mi investigación que debería haber hecho de antemano>. <Encontré que 7 dígitos idénticos son números de teléfono válidos. Entonces puedo contar esa regla.


Esos parámetros se ven muy bien para mí, también podría evitar números empezando con el 911 solo para estar seguro.


Me parece que estás poniendo más esfuerzo en esto de lo que merece. Considerar:

Si su propósito es protegerse contra los números de teléfono introducidos incorrectamente, entonces probablemente pueda atrapar a más del 90% de ellos con solo un control muy simple.

Si su propósito es tratar de obligar a los usuarios a proporcionar un número válido, independientemente de si desean divulgar esa información o no, entonces ha asumido una tarea desesperada, incluso si usted pudo acceder al 100% de precisión, hasta el momento. las segundas bases de datos de la compañía de telecomunicaciones para verificar que el número exacto ingresado está actualmente en vigencia, aún no obtiene ninguna garantía de que el número que le dieron es el suyo. Una vez más, un simple cheque frustrará a la mayoría de las personas que ingresan números falsos, pero aquellos que estén dispuestos a intentarlo más de dos o tres veces encontrarán una forma de vencer sus intentos de ganar sus números.

De cualquier manera, una simple prueba te dará buenos resultados y acceder a conjuntos de reglas más complejos tomará cada vez más tiempo a la vez que te proporcionará un beneficio cada vez menor (mientras que también potencialmente agregará falsos positivos, como ya se mostró con los "siete de los mismo dígito "y 867-5309 casos).


Si puede verificar el código de área, a menos que realmente necesite saber su número de teléfono, probablemente esté haciendo todo lo que sea razonable.


Si te apegas solo a los números de formato de EE. UU. Y Canadá, creo que la siguiente expresión regular podría funcionar: [2-9] [0-9] [0-9] - [2-9] [0-9] [ 0-9] - [0-9] [0-9] [0-9] [0-9] &! [2-9] [0-9] [0-9] -555- [0-9] [0-9] [0-9] [0-9]


Sus clientes todavía pueden hacer lo que yo hago, que es dar el número de moviefone local.

Además, 123-1234 o 123-4567 son solo números inválidos porque el prefijo comienza con un 1, pero 234-5678 o 234-1234 serían realmente válidos (aunque parece falso).


También debe tener en cuenta la marcación de diez dígitos, que ahora se usa en algunas áreas: esto es diferente de la marcación a larga distancia (es decir, 303-555-1234, a diferencia del 1-303-555-1234). En algunos lugares, un número de teléfono válido tiene diez dígitos de longitud; en otros, es siete.


Esta es una función rápida que uso (abajo). Tengo acceso a una base de datos de código postal que contiene datos de prefijo y código de área que se actualiza mensualmente. A menudo he pensado en hacer una inmersión de datos para confirmar que el prefijo existe para el código de área.

public static bool isPhone(string phoneNum) { Regex rxPhone1, rxPhone2; rxPhone1 = new Regex(@"^/d{10,}$"); rxPhone2 = new Regex(@"(/d)/1/1/1/1/1/1/1/1/1"); if(phoneNum.Trim() == string.Empty) return false; if(phoneNum.Length != 10) return false; //Check to make sure the phone number has at least 10 digits if (!rxPhone1.IsMatch(phoneNum)) return false; //Check for repeating characters (ex. 9999999999) if (rxPhone2.IsMatch(phoneNum)) return false; //Make sure first digit is not 1 or zero if(phoneNum.Substring(0,1) == "1" || phoneNum.Substring(0,1) == "0") return false; return true; }


No entiendo si este es el lugar correcto, es una función de formateo en lugar de una función de validación, pensé que vamos a compartirlo con la comunidad, tal vez algún día sea útil.

Private Sub OnNumberChanged() Dim sep = "-" Dim num As String = Number.ToCharArray.Where(Function(c) Char.IsDigit(c)) _ .ToArray Dim ext As String = Nothing If num.Length > 10 Then ext = num.Substring(10) ext = If(IsNullOrEmpty(ext), "", " x" & ext) _Number = Left(num, 3) & sep & Mid(num, 4, 3) & sep & Mid(num, 7, 4) & ext End Sub

Mi función de validación es así:

Public Shared Function ValidatePhoneNumber(ByVal number As String) Return number IsNot Nothing AndAlso number.ToCharArray. _ Where(Function(c) Char.IsNumber(c)).Count >= 10 End Function

Llamo a esta última función @ el método OnNumberChanging (número como cadena) de la entidad.


Para la validación de teléfonos de EE. UU. E internacionales encontré este código el más adecuado:

((/+[1-9]{1,4}[ /-]*)|(/([0-9]{2,3}/)[ /-]*)|([0-9]{2,4})[ /-]*)*?[0-9]{3,4}?[ /-]*[0-9]{3,4}?$

Puede encontrar una discusión (aunque algo anticuada) aquí .


Puede hacer la validación del número de teléfono internamente en su aplicación usando expresiones regulares. Dependiendo de su idioma, puede llamar a una función que devolverá verdadero si el número de teléfono suministrado coincide con la expresión.

En PHP:

function phone_number_is_valid($phone) { return (eregi(''^(?:/([2-9]/d{2}/)/ ?|[2-9]/d{2}(?:/-?|/ ?))[2-9]/d{2}[- ]?/d{4}$'', $phone)); }

Puede buscar diferentes expresiones regulares en línea. Encontré el de arriba en http://regexlib.com/DisplayPatterns.aspx?categoryId=7&cattabindex=2

Editar: algunos sitios específicos del idioma para expresiones regulares: