Javascript 从背景图像属性获取URL

Javascript 从背景图像属性获取URL,javascript,jquery,regex,trim,Javascript,Jquery,Regex,Trim,我当前正在使用此选项从背景图像属性获取url: var url = $(this).find('div').css('background-image'); url = url.substr(4, url.length - 5); 但是,在某些浏览器(IE6-9)中,这很好,而不是: url(http://.com/) 其 是否有一种故障保护方法可以从该属性获取url?无需执行浏览器检测或其他操作?您可以执行以下操作: url = url.replace(/^url\(["']?/, '')

我当前正在使用此选项从背景图像属性获取url:

var url = $(this).find('div').css('background-image');
url = url.substr(4, url.length - 5);
但是,在某些浏览器(IE6-9)中,这很好,而不是:

url(http://.com/)

是否有一种故障保护方法可以从该属性获取url?无需执行浏览器检测或其他操作?

您可以执行以下操作:

url = url.replace(/^url\(["']?/, '').replace(/["']?\)$/, '');

这将从字符串的开头删除
url('
url(“
”)resp.
”)

@Ozzy:这是一个很好的答案,但我不会称之为“故障保护”,因为如果有人接管您的项目并开始使用多个背景…
url.replace(/^url)([''')?(.+)[“]?\)/,“$1”);
将shorter@HasanTayyarBESIK,regex是贪婪的,因此您需要指定不希望在捕获中使用引号。例如:
url.replace(/^url)([''”?([^']+)[''']?\)/,'$1');
这稍微好一点:
url.replace(/^url)(['']?(.+)[''']?\)/,'$1');
(不接受最后一个)
url = url.replace(/^url\(["']?/, '').replace(/["']?\)$/, '');