I’m trying to match all the images elements as strings,
This is my regex:
JavaScript
x
2
1
html.match(/<img[^>]+src="http([^">]+)/g);
2
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"
Advertisement
Answer
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
JavaScript
1
12
12
1
var m,
2
urls = [],
3
str = '<img src="http://site.org/one.jpg />n <img src="http://site.org/two.jpg />',
4
rex = /<img[^>]+src="?([^"s]+)"?s*/>/g;
5
6
while ( m = rex.exec( str ) ) {
7
urls.push( m[1] );
8
}
9
10
console.log( urls );
11
// [ "http://site.org/one.jpg", "http://site.org/two.jpg" ]
12