【问题标题】:Get URL from background-image Property从 background-image 属性获取 URL
【发布时间】:2011-09-17 20:36:46
【问题描述】:

我目前正在使用它从 background-image 属性中获取 url:

var url = $(this).find('div').css('background-image');
url = url.substr(4, url.length - 5);

这在某些浏览器(IE6-9)中可以正常工作,而不是:

url(http://.com/)

url("http://.com/)

是否有一种故障安全方法可以从该属性中获取 url?无需进行浏览器检测或其他一些事情?

【问题讨论】:

    标签: javascript jquery regex trim


    【解决方案1】:

    你可以这样做:

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

    这将从字符串的开头删除url('url("(如果存在)和") resp。 ') 从最后。

    【讨论】:

    • @Ozzy:这是一个很好的答案,但我不会称之为“故障安全”,因为如果有人接管您的项目并开始使用多个背景......
    • url.replace(/^url\(['"]?(.+)['"]?\)/,'$1'); 会更短
    • @HasanTayyarBESIK,正则表达式是贪婪的,因此您需要指定您不希望在捕获中使用引号。即:url.replace(/^url\(['"]?([^'"]+)['"]?\)/,'$1');
    • 那好一点:url.replace(/^url\(['"]?(.+?)['"]?\)/,'$1');(不取最后一个“)
    猜你喜欢
    • 2017-03-04
    • 2017-06-30
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    相关资源
    最近更新 更多