Soy consciente de Reemplazar un grupo de captura Regex con mayúsculas en Javascript
Eso es para reemplazar todo el partido y no un () partido.
Aquí está mi problema:
var text = '<span style="font-variant: small-caps" class="small-caps">Lord</span>' text = text.replaceAll(/<span style="font-variant.*?>(.*)<\/span>/g, function (v) { return v.toUpperCase(); }); console.log(text);
Esto devuelve la etiqueta completa en mayúsculas y no el texto real en (.*).
Solo quiero reemplazar la etiqueta de intervalo con solo las mayúsculas del texto interno. También hay más de una etiqueta de intervalo en la variable de texto real.
Los grupos de captura se pasan como argumentos adicionales a la función de devolución de llamada. Así que usa el argumento con la captura.
var text = '<span style="font-variant: small-caps" class="small-caps">Lord</span>' text = text.replaceAll(/<span style="font-variant.*?>(.*)<\/span>/g, (match, g1) => g1.toUpperCase()); console.log(text);
También puede usar />(.*)<\/span>/g
var text = '<span style="font-variant: small-caps" class="small-caps">Lord</span>'; text = text.replaceAll(/>(.*)<\/span>/g, function(_, group) { return `>${group.toUpperCase()}</span>`; }); console.log(text);