Extract image src from a string

javascript, node.js, regex

Solution

You need to use a capture group `()` to extract the urls, and if you're wanting to match globally `g`, i.e. more than once, when using capture groups, you need to use `exec` in a loop (`match` ignores capture groups when matching globally).

For example

var m,
    urls = [], 
    str = '<img src="http://site.org/one.jpg />\n <img src="http://site.org/two.jpg />',
    rex = /<img[^>]+src="?([^"\s]+)"?\s*\/>/g;

while ( m = rex.exec( str ) ) {
    urls.push( m[1] );
}

console.log( urls ); 
// [ "http://site.org/one.jpg", "http://site.org/two.jpg" ]

Problem

I'm trying to match all the images elements as strings, This is my regex: ``` html.match(/<img[^>]+src="http([^">]+)/g); ``` This works, but I want to extract the `src` of all the images. So when I execute the regular expression on this String: `<img src="http://static2.ccn.com/ccs/2013/02/img_example.jpg />` it returns: `"http://static2.ccn.com/ccs/2013/02/img_example.jpg"`

Original source

Related problems