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

Time:10-19

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

CodePudding user response:

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 enter image description here

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

  • Related