Tuesday, May 21, 2024
 Popular · Latest · Hot · Upcoming
81
rated 0 times [  86] [ 5]  / answers: 1 / hits: 52269  / 12 Years ago, mon, february 18, 2013, 12:00:00

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


More From » regex

 Answers
19

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 ]

[#80156] Saturday, February 16, 2013, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
claudiofredye

Total Points: 583
Total Questions: 101
Total Answers: 115

Location: Sao Tome and Principe
Member since Wed, Dec 29, 2021
2 Years ago
;