Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

489
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda