使用正则表达式查找图像URL

时间:2013-03-14 14:20:56

标签: javascript jquery regex find match

任何正在使用的正则表达式找到图片网址?

示例:

var reg = /^url\(|url\(".*"\)|\)$/;

var string = 'url("http://domain.com/randompath/random4509324041123213.jpg")';

var string2 = 'url(http://domain.com/randompath/random4509324041123213.jpg)';


console.log(string.match(reg));
console.log(string2.match(reg));

我绑了但是失败了reg 模式看起来像这样,我只想要url(" ")url( )

之间的图片网址

我只想得到像http://domain.com/randompath/random4509324041123213.jpg

这样的输出

http://jsbin.com/ahewaq/1/edit

3 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

var regex = /\burl\(\"?(.*?)\"?\)/;
var match = regex.exec(string);
console.log(match[1]);

在第一个子组中捕获URL。

答案 1 :(得分:1)

我只是使用这个表达式:

/url.*\("?([^")]+)/

这将返回一个数组,其中第一个索引(0)包含整个匹配,第二个将是url本身,如下所示:

'url("http://domain.com/randompath/random4509324041123213.jpg")'.match(/url.*\("?([^")]+)/)[1];
//returns "http://domain.com/randompath/random4509324041123213.jpg"
//or without the quotes, same return, same expression
'url(http://domain.com/randompath/random4509324041123213.jpg)'.match(/url.*\("?([^")]+)/)[1];

如果使用单引号和双引号进行更改,您可以简单地用"'"替换所有['"],在这种情况下:

/url.*\(["']?([^"')]+)/

答案 2 :(得分:0)

如果字符串始终保持一致,一个选项就是删除前4个字符url("和最后两个字符")

var string = 'url("http://domain.com/randompath/random4509324041123213.jpg")';

// Remove last two characters
string = string.substr(0, string.length - 2);

// Remove first five characters
string = string.substr(5, string.length);

这是a working fiddle

这种方法的好处:您可以自己编辑它,而无需让StackOverflow为您完成。 RegEx 很棒,但是如果你不知道它,那么用它来编写你的代码会让你感到很沮丧。