2013-10-08 66 views
1

我有一個var被設置爲捕獲元素的background-image css屬性。結果總是這樣:更清晰的方式去除字符串中的特定字符位置?

url(http://www.somerandomurltest.net/something/more/things/image.jpg) 

我需要擺脫「URL(」最後「)」的,所以我只能離開正與實際的URL,有沒有可以很容易地做到這一點的函數?我目前正在這樣做:

var cleanURL = urlVar.substr(0, urlVar.length-1), 
    cleanURL = cleanURL.substr(4); 

有沒有更好的方法?

+0

你是如何在第一時間獲得網址是什麼? –

回答

4

您可以使用正則表達式:

var str = "url(http://www.somerandomurltest.net/something/more/things/image.jpg)"; 
var url = str.match(/url\((.+)\)/)[1]; 

Example fiddle

+0

我總是覺得,正則表達式在這種情況下效率要低得多。這會比substr更快(即使不明顯)嗎? – user2413333

+0

對於單個字符串的操作,我懷疑你會注意到性能差異。我更喜歡正則表達式,因爲它在處理輸入字符串中的變化時更加穩健。 –

1

可以使用這樣做的slice

var str = 'url(http://www.somerandomurltest.net/something/more/things/image.jpg)'; 
str = str.slice(4, -1); 
console.log(str); 
+2

你不需要'str.length','-1'就足夠了。 –

+0

'String.slice'很少知道它支持的跨瀏覽器,並且正在處理前+後退('str.slice(4,-1)') – andlrc

相關問題