Elimine las etiquetas envolventes <p de alrededor de las etiquetas <img con Javascript
Alguna idea de cómo hacer esto con Javascript y no con php, etc. El único ejemplo que puedo encontrar en línea es con PHP
preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
¿Alguna ayuda/guía para refactorizar esto en Javascript?
Muchas gracias.
Si desea eliminar la etiqueta <p>
que solo tiene la etiqueta <img>
como su elemento secundario, puede probar esta expresión regular:
<p\b[^<>\/]*>\s*(<img\b[^<>]*>)\s*<\/p>
$1
<p\b[^<>\/]*> // opening <p> tag \s* // optional white spaces (<img\b[^<>]*>) // <img> tag, and capture it in group 1 \s* // optional white spaces <\/p> // closing </p> tag
Verifique la prueba
const text = '<p class="text">test</p><p class="image"> <img src="vvv" /> </p>'; const regex = /<p\b[^<>\/]*>\s*(<img\b[^<>]*>)\s*<\/p>/g; const result = text.replace(regex, '$1'); console.log(text); console.log(result);