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

479
Vistas
Regex: ¿cómo reemplazar un carácter específico en una cadena después de escribirlo solo una vez?

Estoy tratando de limitar un campo de entrada a solo números y la posibilidad de un signo "+" solo en el índice [0] de la cadena. La idea es dejar que el usuario escriba su número de teléfono, se me ocurrió esto:

 function main() { let phone = document.getElementById('phone'); let phoneRegex = /[a-zA-Z]|[-!$%^&*()_|~=`{}[\]:";'<>?,./]/; phone.value = phone.value.replace(phoneRegex, ''); console.log(phone.value); }
 <input id="phone"> <button onclick="main()">Run</button>

La cuestión es que esto funciona bien, pero quiero limitar el primer carácter a solo un dígito o un signo "+", los caracteres que provienen del índice [1] en adelante solo deben ser números.

no se me ocurre una idea de como solucionar esto

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

0

Pruebe esto como punto de partida (probablemente desee expandirlo aún más para tener en cuenta la longitud total de la cadena, delimitadores como - , etc.):

 let phoneRegex = /\+?\d+/;

+ en una expresión regular tiene un significado especial, por lo que cuando queremos hacer coincidir el carácter literal "+", debemos escaparlo. Y siguiéndolo con el ? carácter lo hace opcional:

 \+?

A continuación, \d seguido de + coincidirá con cualquier secuencia de uno o más dígitos:

 \d+

Puede ver una visualización de este patrón aquí .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sé que llego tarde en este juego, pero agrego una solución más para mí y las referencias futuras de otros.

Se me ocurrió esta solución que funciona para mí:

 /^(\+|[0-9])?[0-9]{12}$/

Gracias

about 4 years ago · Juan Pablo Isaza Denunciar

0

Quiero limitar el primer carácter a solo un dígito o un signo "+", los caracteres que provienen del índice [1] en adelante deben ser solo números.

La expresión regular:

 /^\+?\d+$/

medio:

Desde el principio, uno o cero + signos, luego uno o más números hasta el final.

Tenga en cuenta los siguientes símbolos de expresión regular:

  • * - cero o más
  • + - uno o más
  • ? - cero o uno
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