Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

316
Vistas
Patrón de expresiones regulares de número de teléfono en la función JS replace ()

Estoy tratando de validar el patrón del número de teléfono usando la función replace() . Necesito eliminar el primer dígito del número si no comienza con 3 y la longitud del número no debe ser mayor que el total de 10 dígitos y eliminar los dígitos de entrada adicionales después de que la longitud sea 10 mientras el usuario está escribiendo. Aquí está mi código:

 function phoneNumber(element){ if(element.value.length != 0){ element.value = element.value.replace(/^0[^0-9].{9}/, ''); } }
 <input type="text" name="phone" required oninput="phoneNumber(this)"/>

Lo que quiero es que si el usuario escribe el primer dígito que no sea 3, ese dígito se eliminará y la longitud total del número será 10. Algunos casos para entender:

 3430215478 // acceptable 343454545454 // not acceptable and replace() should remove the last two digits 54 0347878788 // not acceptable and replace() should remove the first digit 0 +924544444 // not acceptable and replace() should remove the all the digits because it does not start with 3

He probado diferentes expresiones regulares encontradas en Internet pero no funcionan en la función replace(). te agradeceria mucho si me ayudas.

about 4 years ago · Santiago Gelvez
2 Respuestas
Responde la pregunta

0

Esto debería hacerlo: element.value.replace(/^[^3]+|^([0-9]{10}).*|[^0-9]+/g, '$1')

 function phoneNumber(element) { if (!element.value.length) return; element.value = element.value.replace(/^[^3]+|^([0-9]{10}).*|[^0-9]+/g, '$1') } /* 3430215478 // acceptable 343454545454 // not acceptable and replace() should remove the last two digits 54 0347878788 // not acceptable and replace() should remove the first digit 0 +924544444 // not acceptable and replace() should remove the all the digits because it does not start with 3 */
 <input type="text" name="phone" required oninput="phoneNumber(this)"/>

La expresión regular contiene 3 partes separadas por | :

^[^3]+ : coincide con cualquier carácter al comienzo de la cadena que no sea el número 3

^([0-9]{10}).* - esta parte hace 2 cosas: primero captura 10 dígitos desde el principio de la cadena ^([0-9]{10}) y hace coincidir todo lo que sigue después .*

[^0-9]+ : finalmente, esta parte coincide con cualquier carácter que no sea un dígito

Cualquier carácter que coincida con la expresión regular será reemplazado por 10 dígitos capturados de la segunda parte de la expresión regular a través de la palabra clave $1 (que representa el primer grupo capturado)

g al final de la expresión regular es una bandera Global , lo que significa que continuará haciendo coincidir cada parte de la expresión regular, sin ella, la expresión regular se detendría en la primera coincidencia.

about 4 years ago · Santiago Gelvez Denunciar

0

Es posible que desee considerar el uso de libphonenumber-js

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda