2013-07-10 72 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()前綴/後綴。正則表達式很難閱讀,理解和維護。