Javascript 从字符串中去除特定字符位置的更干净的方法?

Javascript 从字符串中去除特定字符位置的更干净的方法?,javascript,jquery,Javascript,Jquery,我有一个var,用于捕获元素的背景图像css属性。结果总是这样: url(http://www.somerandomurltest.net/something/more/things/image.jpg) var cleanURL = urlVar.substr(0, urlVar.length-1), cleanURL = cleanURL.substr(4); 我需要去掉url和最后一个,所以我只剩下实际的url,有没有一个函数可以轻松做到这一点?我现在是这样做的: url(ht

我有一个var,用于捕获元素的背景图像css属性。结果总是这样:

url(http://www.somerandomurltest.net/something/more/things/image.jpg)
var cleanURL = urlVar.substr(0, urlVar.length-1),
    cleanURL = cleanURL.substr(4);
我需要去掉url和最后一个,所以我只剩下实际的url,有没有一个函数可以轻松做到这一点?我现在是这样做的:

url(http://www.somerandomurltest.net/something/more/things/image.jpg)
var cleanURL = urlVar.substr(0, urlVar.length-1),
    cleanURL = cleanURL.substr(4);
有更好的方法吗?

您可以使用正则表达式:

var str = "url(http://www.somerandomurltest.net/something/more/things/image.jpg)";
var url = str.match(/url\((.+)\)/)[1];
您可以使用正则表达式:

var str = "url(http://www.somerandomurltest.net/something/more/things/image.jpg)";
var url = str.match(/url\((.+)\)/)[1];
您可以使用以下命令执行此操作:

您可以使用以下命令执行此操作:


您首先是如何获取URL的?您首先是如何获取URL的?并且您不需要str.length,-1就足够了。String.slice几乎不知道其支持的跨浏览器,并且正在处理前后偏移str.slice4,-1,您不需要str.length,-1就足够了。String.slice几乎不知道它支持的跨浏览器,并且正在处理前后偏移量str.slice4,-1我总是觉得正则表达式在这种情况下效率要低得多。这会比substr更快吗?对于单个字符串上的操作,我怀疑您是否会注意到性能差异。我更喜欢正则表达式,因为它在处理输入字符串的变化时更加健壮。我总是觉得正则表达式在这种情况下效率要低得多。这会比substr更快吗?对于单个字符串上的操作,我怀疑您是否会注意到性能差异。我更喜欢正则表达式,因为它在处理输入字符串中的更改时更加健壮。