Digamos que tengo esta cadena:
<img class="emoji emoji-small" src="./img-apple-64/1f525.png" alt="??">This is only<img class="emoji emoji-small" src="./img-apple-64/1f525.png" alt="??"> <img class="emoji emoji-small" src="./img-apple-64/1f916.png" alt="??">what i want<img class="emoji emoji-small" src="./img-apple-64/1f916.png" alt="??">Necesito extraer solo la parte del texto sin la etiqueta <img . En el ejemplo anterior, este es el resultado que necesito:
This is only what i want
¿Existe una manera rápida/simple de hacer esto, sin tener que hacer un bucle en toda la cadena y reemplazar manualmente las cosas?
¿Usar DOM?
const str = `<img class="emoji emoji-small" src="./img-apple-64/1f525.png" alt="??">This is only<img class="emoji emoji-small" src="./img-apple-64/1f525.png" alt="??"> <img class="emoji emoji-small" src="./img-apple-64/1f916.png" alt="??">what i want<img class="emoji emoji-small" src="./img-apple-64/1f916.png" alt="??">` const div = document.createElement("div"); div.innerHTML = str console.log(div.textContent)La siguiente expresión regular:
/(?<=\>)([^\<][\s\w]{1,})/gmhará esto por ti. Vea abajo:
let str = '<img class="emoji emoji-small" src="./img-apple-64/1f525.png" alt="??">This is only<img class="emoji emoji-small" src="./img-apple-64/1f525.png" alt="??"> <img class="emoji emoji-small" src="./img-apple-64/1f916.png" alt="??">what i want<img class="emoji emoji-small" src="./img-apple-64/1f916.png" alt="??">' let match = str.match(/(?<=\>)([^\<][\s\w]{1,})/gm);match es una matriz que contiene los valores ['Esto es solo', 'lo que quiero']