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

124
Vistas
Regex: combina y reemplaza dos grupos a la vez

Cómo encontrar grupos de caracteres en mayúsculas y minúsculas en una cadena y reemplazarlos de esta manera:

  • agregue etiquetas html para grupos en mayúsculas: <span class="upper_group">FOO</span>
  • agregue etiquetas html para grupos en minúsculas y transforme a mayúsculas: <span class="lower_group">BAR</span>

Intenté esto a continuación, pero no puedo transformar los grupos inferiores fácilmente a mayúsculas:

 let sentence = "NOCH KEt SKUIZh"; let newSentence = sentence.replace(/([az]+)/g, '<span class="bar">$1</span>').replace(/([A-Z'.]+)/g, "<span class='foo'>$1</span>");

Rendimiento esperado:

 <span class="foo">NOCH</span> <span class="foo">KE</span><span class="bar">t</span> <span class="foo">SKUIZ</span><span class="bar">h</span>
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puedes considerar este código:

 var s = "NOCH KEt SKUIZh"; var r = s.replace(/([az]+)|([AZ]+)/g, (m, g1, g2) => '<span class="' + (g1 != undefined ? 'lower">' + g1 : 'upper">' + g2) + '</span>'); console.log(r); //=> '<span class="upper">NOCH</span> <span class="upper">KE</span><span class="lower">t</span> <span class="upper">SKUIZ</span><span class="lower">h</span>'

Detalles RegEx+lamnda:

  • ([az]+) : Coincide con 1+ letras minúsculas en el 1er grupo
  • | : o
  • ([AZ]+) : Coincide con 1+ letras mayúsculas en el segundo grupo
  • (m, g1, g2) : pone a disposición m (coincidencia completa) y gN (N-ésimo grupo de captura) para la expresión lambda
  • Cuando g1 no es nulo, use la clase lower ; de lo contrario, use la clase upper
about 4 years ago · Juan Pablo Isaza Denunciar

0

Lo siguiente asume que su resultado esperado realmente debería ser:

<span class="foo">NOCH</span> <span class="foo">KE</span><span class="bar">T</span> <span class="foo">SKUIZ</span><span class="bar">H</span>

Puede utilizar una función de reemplazo. Por ejemplo:

 let sentence = "NOCH KEt SKUIZh"; let replacer = (_, g1, g2) => `<span class="${ g1 ? `foo">${g1}` : `bar">${g2.toUpperCase()}` }</span>`; let newSentence = sentence.replace(/([AZ]+)|([az]+)/g, replacer); console.log(newSentence);

g1 es la cadena capturada por ([AZ]+) y g2 es la cadena capturada por ([az]+) .

about 4 years ago · Juan Pablo Isaza Denunciar

0

 let sentence = "NOCH KEt SKUIZh"; let newSentence = sentence.replace(/([az]+)|([A-Z'.]+)/g, (a,b) => b ? `<span class="adlavaret2">${a.toUpperCase()}</span>` : `<span class="adlavaret1">${a}</span>`); console.log(newSentence);

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