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

387
Visualizações
Javascript: escriba la expresión regular de la condición para varias cadenas

Quiero escribir una expresión regular para las siguientes cadenas para incluir todas las cadenas:

 B9966 ch6258 028 chIRZ170 IRZ170 B8966A BA966C

La SALIDA debe ser la siguiente:

 966 6258 028 170 170 966A BA966C

Condiciones :

  1. Si observa b9966, verá que su salida es 966. Significa que si la cadena comenzó con un carácter, el siguiente dígito del carácter no forma parte de la salida.
  2. Si la cadena es un número entero, se emite la cadena completa.
  3. Quiero que la salida de B8966A sea como esta 966A.
  4. De lo contrario, si las tres condiciones anteriores no existen, todos los dígitos de cadena se devuelven como salida.

Quería escribir con condiciones en expresiones regulares (es decir: (?(?condition)then|else) ) pero descubrí que javascript no admite condiciones.

Por ejemplo, la siguiente solución funciona bien, pero estoy buscando una expresión regular más profesional:

 ^\d+.|(?<=^\D{1}\d)\d+.|(?<=^\D{2,})\d+.
over 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Para sus datos de ejemplo, puede eliminar una mayúscula seguida de un solo dígito o eliminar todos los que no sean dígitos.

 [AZ]\d|[^\d\n]+

Demostración de expresiones regulares

 const regex = /[AZ]\d|[^\d\n]+/g; [ "B9966", "ch6258", "028", "chIRZ170", "IRZ170" ].forEach(s => console.log(s.replace(regex, '')));

Editar

Para los ejemplos actualizados, puede comenzar la coincidencia con un dígito que no sea seguido de un dígito, o hacer coincidir 1+ dígitos que no sean:

 \b(?:[^\d\n]\d|[^\d\n]+)

Demostración de expresiones regulares

Para no tocar el último ejemplo, puede usar una anticipación negativa:

 \b(?:[^\d\n]\d|(?![AZ]{2}\d)[^\d\n]+)

Demostración de expresiones regulares

 const regex = /\b(?:[^\d\n]\d|(?![AZ]{2}\d)[^\d\n]+)/; [ "B9966", "ch6258", "028", "chIRZ170", "IRZ170", "B8966A", "BA966C" ].forEach(s => console.log(s.replace(regex, '')));

over 4 years ago · Juan Pablo Isaza Relatório

0

Se puede usar otra expresión regular:

 (?<!^\D)\d+.*

En la expresión regular anterior, se usa la búsqueda negativa, es decir, si cada carácter no comenzó con \D antes y se compara con el carácter \d después.
Resultado: https://regex101.com/r/Av8pEq/1

over 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
Assistente virtual