-1

例子:

网址(http://xevens.dev/images/slider-bg.jpg

我需要括号内的值。我可以去掉'url('和')'部分,但它很难看。我想要这个在正则表达式中。

请帮忙

4

3 回答 3

1

为什么你这么想使用正则表达式?似乎显而易见的解决方案是只使用substring

function getUrl(urlString) {
    return urlString.substring(
        urlString.indexOf('(') + 1, 
        urlString.lastIndexOf(')'))
}

使用它的例子:

var test = 'url(http://xevens.dev/images/slider-bg.jpg)';
console.log(getUrl(test));

不要忘记 url 可以包含括号。这就是使 Regex 解决方案变得棘手的原因。

于 2013-07-10T09:01:02.893 回答
0

同意@RobH。

然后您可以使用正则表达式检查 URL 是否有效。

你应该避免在任何地方使用正则表达式,比如你的 url() 前缀/后缀。正则表达式很难阅读、理解和维护。

于 2013-07-10T09:13:02.117 回答
0
^url\(.*\)$ # Will match any string starting by "url(" and ending by ")". Replace the "*" by "+" if you want to ignore the "url()" match

但是有更有效的方法来做到这一点。例如,您可以在括号上拆分,因为 url 不能包含括号。

于 2013-07-10T08:59:55.330 回答