javascript - RegEx 从 CSS 背景样式中提取 URL

标签 javascript css regex

我有一个这种形式的字符串:

url("http://www.example.com/imgs/backgrounds/bg80.jpg") repeat scroll 10% 0% transparent

这是来自某个元素的 CSS 样式,该元素目前在页面上不可见。我需要做的是预加载该背景图片,但为此我需要它的 URL,并且我正在尝试编写一个正则表达式来找到它。

我知道 http://www.example.com/imgs/backgrounds/ 部分保持不变,唯一改变的是图像名称本身,它可以以 结尾。 jpg.png.

这是一次尝试:

(http:\/\/www.example.com\/imgs\/backgrounds\/)[\w\.\-]*

问题在于只有 http://www.example.com/imgs/backgrounds/ 部分被提取。所以我尝试了这个,但这根本不起作用!

(http:\/\/www.example.com\/imgs\/backgrounds\/)[\w\.\-]*(.jpg|.png)

我做错了什么? 感谢您的帮助!

最佳答案

背景 url 可以有 '" 或括号内的 url 周围没有

有效网址

  • url("http://www.example.com/imgs/backgrounds/bg80.jpg")
  • url('http://www.example.com/imgs/backgrounds/bg80.jpg')
  • url(http://www.example.com/imgs/backgrounds/bg80.jpg)

所以对于一个通用的解决方案你可以使用

var background = 'url("http://www.example.com/imgs/backgrounds/bg80.jpg") repeat scroll 10% 0% transparent',
    reg = /(?:\(['"]?)(.*?)(?:['"]?\))/,
    extracterUrl = reg.exec(background)[1];

关于javascript - RegEx 从 CSS 背景样式中提取 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20857404/

相关文章:

css - 将 CSS 样式应用于表格的所有列

java - 正则表达式匹配两个以上元素Java

python - 如何使用数百种模式在列表列表中搜索数万个项目

javascript - HasMany - BelongsTo 与 RESTAdapter Ember.js

javascript - RegExp,替换关键字的正确大写版本

javascript - JS回调错误: Uncaught SyntaxError: Unexpected token function

C++正则表达式替换为回调函数

javascript - 扩展 `super()` 时使用 `Object`

css - 样式内嵌 css 的 svg

html - CSS3 输入选择器