Tengo la siguiente etiqueta html (que es personalizada):
<meltdown-code data-lang="HTML">
<span><br>
<p>Hi</p><br>
</span><br>
</meltdown-code>
Suficientemente simple. Ahora, estoy tratando de hacer que las etiquetas HTML se muestren como texto sin formato, en lugar de mostrarse como un elemento separado. Para hacer eso, estoy reemplazando todos los < con < , y todos los > con >
tagHTML.replace(/</g, '<')
El problema: esto también reemplaza las etiquetas <br> , lo que no crea una nueva línea. Aquí está la solución, en un mundo perfecto:
tagHTML.replace(/</g, '<', {exceptions: '<br>'})
Obviamente, no es así como funciona. Cualquier ayuda es apreciada.
¡Gracias!
Búsqueda anticipada negativa para <br> antes de hacer coincidir < .
const text = `<meltdown-code data-lang="HTML">
<span><br>
<p>Hi</p><br>
</span><br>
</meltdown-code>`;
const output = text.replace(/(?!<br>)<([^>]+)>/g, '<$1$gt;');
console.log(output);
<code></code>