我正在尝试将所有图像元素匹配为字符串,
这是我的正则表达式:
html.match(/<img[^>]+src="http([^">]+)/g);
这可行,但是我想提取src所有图像。因此,当我在此String上执行正则表达式时:
src
<img src="http://static2.ccn.com/ccs/2013/02/img_example.jpg />
它返回:
"http://static2.ccn.com/ccs/2013/02/img_example.jpg"
您需要使用捕获组()来提取URL,并且如果要全局匹配g(即,不止一次),则在使用捕获组时,需要exec循环使用(match在全局匹配时忽略捕获组)。
()
g
exec
match
例如
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" ]