validar telefonos telefono telefonico regulares regular para numeros numero nombres expresiones expresion celular regex

telefonos - regex para numero de telefono



Regex para validación de números móviles (2)

Prueba este regex:

^(/+?/d{1,4}[/s-])?(?!0+/s+,?$)/d{10}/s*,?$

La explicación de la expresión regular que utiliza YAPE de Perl es la siguiente:

NODE EXPLANATION ---------------------------------------------------------------------- (?-imsx: group, but do not capture (case-sensitive) (with ^ and $ matching normally) (with . not matching /n) (matching whitespace and # normally): ---------------------------------------------------------------------- ^ the beginning of the string ---------------------------------------------------------------------- ( group and capture to /1 (optional (matching the most amount possible)): ---------------------------------------------------------------------- /+? ''+'' (optional (matching the most amount possible)) ---------------------------------------------------------------------- /d{1,4} digits (0-9) (between 1 and 4 times (matching the most amount possible)) ---------------------------------------------------------------------- [/s-] any character of: whitespace (/n, /r, /t, /f, and " "), ''-'' ---------------------------------------------------------------------- )? end of /1 (NOTE: because you are using a quantifier on this capture, only the LAST repetition of the captured pattern will be stored in /1) ---------------------------------------------------------------------- (?! look ahead to see if there is not: ---------------------------------------------------------------------- 0+ ''0'' (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- /s+ whitespace (/n, /r, /t, /f, and " ") (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- ,? '','' (optional (matching the most amount possible)) ---------------------------------------------------------------------- $ before an optional /n, and the end of the string ---------------------------------------------------------------------- ) end of look-ahead ---------------------------------------------------------------------- /d{10} digits (0-9) (10 times) ---------------------------------------------------------------------- /s* whitespace (/n, /r, /t, /f, and " ") (0 or more times (matching the most amount possible)) ---------------------------------------------------------------------- ,? '','' (optional (matching the most amount possible)) ---------------------------------------------------------------------- $ before an optional /n, and the end of the string ---------------------------------------------------------------------- ) end of grouping ----------------------------------------------------------------------

Quiero una expresión regular para la validación de números móviles. El patrón de expresión regular debe ser tal que debe aceptar + solo al principio y el espacio (o - ) se debe permitir solo después del código de país (solo una vez). Solo se debe permitir el número de 10 dígitos después del código de país. El código de país debe ser opcional. Si el código de país no existe, debe aceptar solo un número de 10 dígitos. El impuesto debe evitar cualquier número no válido como (por ejemplo: +91 0000000000 o 0000000000 ).

La expresión regular debe aceptar números como

+1 8087339090, +91 8087339090, +912 8087339090, 8087339090 , 08087339090 , +1-8087339090, +91-8087339090, +912-8087339090, +918087677876(Country code(2 digits) + 10 digits Mobile Number), +9108087735454(Country code(3 digits) + 10 digits Mobile Number) The regex should not accept numbers like ++51 874645(double successive +), +71 84364356(double successive spaces), +91 808 75 74 678(not more than one space), +91 808-75-74-678(not more than one -), +91-846363, 80873(number less than 10 digit), 8087339090456(number greater than 10 digit), 0000000000(all zeros), +91 0000000(all zeros with country code)


Satisface todos tus requisitos si utilizas el truco que se explica a continuación.

Regex: /^(/+/d{1,3}[- ]?)?/d{10}$/

  1. ^ comienzo de linea
  2. A + seguido de /d+ seguido de una o - que son opcionales.
  3. El punto entero dos es opcional.
  4. Búsqueda negativa para asegurarse de que 0 s no sigan.
  5. Match /d+ 10 veces.
  6. Fin de linea.

DEMO agregó m ultilina bandera en la demostración para verificar todos los casos

PS Realmente necesita especificar qué idioma usa para usar una condición if como la siguiente:

// true if above regex is satisfied and (&&) it does not (`!`) match `0`s `5` or more times if(number.match(/^(/+/d{1,3}[- ]?)?/d{10}$/) && ! (number.match(/0{5,}/)) )