Tengo una expresión regular para controlar la cadena HTML del filtro con JavaScript, quiero obtener todas las imágenes de URL del atributo src
en la etiqueta <img>
, pero quiero admitir ambos caracteres < >
y < >
. Mi código de muestra como a continuación:
const filterImages = str => { const imgRegExp = /\&(?:quot|[gl]t);img.*?src="(.*?)"[^>]+>/g; const images = []; let img; while ((img = imgRegExp.exec(str))) { images.push(img[1]); } return images; }
Se me ocurrió una expresión regular voluminosa como esta
(?:<img\s+src="(.*?)"[^.]*?\/?>|<img\s+src="(.*?)"[^.]*?\/?>)
Lo he probado en el html de una página y parece estar bien https://regex101.com/r/zifqle/1
Para mayor comodidad, podría usar grupos de captura con nombre, pero parece que deben ser únicos, por lo que lo mejor que se me ocurre es
(?:<img\s+src="(?<url1>.*?)"[^.]*?\/?>|<img\s+src="(?<url2>.*?)"[^.]*?\/?>)
También intente incluir el indicador m
(multilínea) con la expresión regular