正则表达式提取src属性

时间:2016-05-05 09:21:57

标签: javascript regex

我正在尝试匹配以jpg或png或gif结尾的每个src属性并在其中提取src字符串。我不确定我提出的以下正则表达式是否正确,但它确实给了我带地址的src属性。我的问题与以下正则表达式的可能问题以及如何只提取src字符串有关。

/src\s*=\s*(["'][^"']+(jpg|png|gif)\b)/g;

1 个答案:

答案 0 :(得分:1)

首先,你的正则表达式试图做太多。首先做类似的事情:

function img_find() {
    var imgs = document.getElementsByTagName("img");
    var imgSrcs = [];

    for (var i = 0; i < imgs.length; i++) {
        imgSrcs.push(imgs[i].src);
    }

    return imgSrcs;
}

现在,你的正则表达式要处理的要少得多。 (没有空格,单引号和双引号,等等。)

请阅读this,不要(除了非常简单的情况)尝试使用正则表达式来解析原始HTML:)

因此,给定一系列图像来源,您只需选择jpg / png / gif个:

/(jpg|png|gif)$)/i;

然后获取他们的文件名,没有扩展名:(有很多方法可以做到这一点;这只是我扔在一起的一件事......)

/(.*)\.[^.]+)/;