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

164
Vistas
Formateo del número de teléfono del campo de entrada con la tecla EventListener

Estoy trabajando en un formulario en el que necesito que el campo del número de teléfono se vuelva a formatear, a medida que escribe, en
xxx-xxx xx xx .
Esto en sí mismo es sencillo y se ha preguntado antes, pero mi problema es un poco diferente:

He usado el enfoque solo de JavaScript que se encuentra en este violín , pero para ajustarme a mi formato deseado, he editado el último bloque de código en esto:

 const areacode = input.substring(0,3); const gr1 = input.substring(3,6); const gr2 = input.substring(6,8); const gr3 = input.substring(8,10); if(input.length > 7) { target.value = `${areacode}-${gr1} ${gr2} ${gr3}`; } else if(input.length > 5) { target.value = `${areacode}-${gr1} ${gr2}`; } else if(input.length > 2) { target.value = `${areacode}-${gr1}`; } else if(input.length > 0) { target.value = `${areacode}`; }

Cuando pruebo esto en el violín, o lo pego en codepen, por ejemplo, funciona perfectamente. Pero cuando lo aplico a mi sitio, no lo hace. Los personajes son reemplazados de una manera extraña.


Sospecha: hay una constante que contiene un reemplazo de expresiones regulares, así:

 const input = event.target.value.replace(/\D/g,'').substring(0,10);

No soy bueno con RegEx, pero como esto funciona en un lugar pero no en el otro, siento que tengo que sospechar de esta línea de código.


about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Experimentando con el código que proporcionó en la pregunta, descubrí que funciona correctamente. No publique código que funcione en StackOverflow preguntando qué tiene de malo.

Sin embargo, examiné su sitio web con un depurador y encontré un problema con la expresión regular: en lugar de usar input.replace(/\D/g, "") , escribió input.replace(/D/g, "") , que elimina todos los caracteres D

Como nota al margen, recomiendo encarecidamente establecer puntos de interrupción en la vista de código fuente del navegador para resolver tales problemas.

about 4 years ago · Juan Pablo Isaza 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