一尘不染

从字符串中提取图像src

node.js

我正在尝试将所有图像元素匹配为字符串,

这是我的正则表达式:

html.match(/<img[^>]+src="http([^">]+)/g);

这可行,但是我想提取src所有图像。因此,当我在此String上执行正则表达式时:

<img src="http://static2.ccn.com/ccs/2013/02/img_example.jpg />

它返回:

"http://static2.ccn.com/ccs/2013/02/img_example.jpg"


阅读 141

收藏
2020-07-07

共1个答案

一尘不染

您需要使用捕获组()来提取URL,并且如果要全局匹配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" ]
2020-07-07