简体   繁体   中英

How to Regular Expression to get all URL src in <Img> tag in JavaScript?

I have a Regular Expression for handle filter HTML string with JavaScript, i want to get all URL image from src attribute in <img> tag, but i want to support both charecters < > and &lt; &gt; &lt; &gt; . My sample code like below:

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;
}

I have come up with a bulky regex like this

(?:<img\s+src="(.*?)"[^.]*?\/?>|&lt;img\s+src="(.*?)"[^.]*?\/?&gt;)

I have tested it on a page's html and it seems fine https://regex101.com/r/zifqle/1

在此处输入图片说明

For convenience you could use named capturing groups, but it seems that they must be unique so the best I can think of is

(?:<img\s+src="(?<url1>.*?)"[^.]*?\/?>|&lt;img\s+src="(?<url2>.*?)"[^.]*?\/?&gt;)

Also try to include m (multiline) flag with the regex

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM