2013-07-10 49 views
-1

例如:,这是什么模式的JavaScript正则表达式:URL(** ** someurl)

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

我需要在括号内的值。我可以删除'url('和')'部分,但它的丑陋。我想用正则表达式。

请帮助

+0

“_Questions询问代码必须证明对所解决问题的最低限度理解,告诉我们您试图做什么,为什么它不工作,以及如何工作。”_ - StackOverflow。 – elclanrs

+0

为什么是正则表达式?你目前的解决方案是否正常似乎分裂应该做... – elclanrs

回答

0
^url\(.*\)$ # Will match any string starting by "url(" and ending by ")". Replace the "*" by "+" if you want to ignore the "url()" match 

但也有更多的efficients的方式来做到这一点。例如,你可以在括号中拆分,因为url不能包含括号。

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)); 

不要忘记一个网址可能包含括号。这是什么使正则表达式解决方案棘手。

0

同意@RobH。

然后,您可以检查该网址是否与regular expression一致。

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