解析图像src的字符串

时间:2013-05-26 14:01:00

标签: javascript string image

我有一个像这样的字符串:

<a href="http://www.google.de/imgres" ><img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhUUEhQUFRQVFRQVFRQVFBQVFxQUFRUXFhQUFBUYHCggGBolHBQUITEhJSkrLi4uFx8zODMsNygtLisBCgoKDg0OFBAQGiwkHyQsLCwsLCwtLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLP" /></a>

现在我想在引号之间提取src内容。我怎么能这样做

4 个答案:

答案 0 :(得分:2)

首先,为id设置img

<a href="http://www.google.de/imgres" ><img id="your_image_id" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhUUEhQUFRQVFRQVFRQVFBQVFxQUFRUXFhQUFBUYHCggGBolHBQUITEhJSkrLi4uFx8zODMsNygtLisBCgoKDg0OFBAQGiwkHyQsLCwsLCwtLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLP" /></a>

然后使用以下内容:

var src = document.getElementById("your_image_id").attr('src');

另外,我建议您检查DOM规范中的getElementById

如果你不能像你说的那样设置id,那么你可能会从网页中获取所有链接并进行某种选择(例如,使用JQuery按类选择),所以解决方案可能是这样的:

$('a').each(function() {
    var src = $(this).children('img').src; // here is your string
});

答案 1 :(得分:1)

如果你使用jquery,你可以这样做。

function extract(data,tag,attribute){
    var html = $("<div>" + data + "</div>");
    return html.find(tag).attr(attribute);
}

你的案例中的标签是“img”,属性是“src”。

var html = $("<div>" + data + "</div>");

将字符串包装在div中以确保始终存在根节点。 Fiddle demo

如果你想提取所有“src”并返回一个数组,试试这个

  function extract(data,tag,attribute){
        var html = $("<div>" + data + "</div>");
        var returnedData = [];
        html.find(tag).each(function(){
             returnedData.push($(this).attr(attribute));
        });
        return returnedData;
    }

答案 2 :(得分:1)

我建议不使用正则表达式,只使用DOM方法:

function retrieveProp(htmlString, from, prop) {
    var tmp = document.createElement('div');
    tmp.innerHTML = htmlString;
    var elem = tmp.getElementsByTagName(from)[0];
    return elem[prop];
}

JS Fiddle demo

答案 3 :(得分:1)

这取决于你想要这样做的方式。

如果是字符串,则可以使用正则表达式:

/.*src=\"(.*?)\".*/.exec('<a href="http://www.google.de/imgres" ><img id="image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhUUEhQUFRQVFRQVFRQVFBQVFxQUFRUXFhQUFBUYHCggGBolHBQUITEhJSkrLi4uFx8zODMsNygtLisBCgoKDg0OFBAQGiwkHyQsLCwsLCwtLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLP" /></a>')

最好的方法是通过DOM。给它一个ID并获得'src'属性。

<img src=".." id="img" />

使用Javascript:

document.getElementById('img').src

修改 我现在看到你无法设置ID,正如其他人所提到的那样,你可以遍历每个img标签。

本机:

var imgs = document.getElementsByTagName('img');
for (var i = 0; i < imgs.length; i++)
{
     var src = imgs[i].src
}

jQuery的:

$('img').each(function ()
{
     var src = $(this).attr('src');
});