2013-10-08 36 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

相关问题