javascript - 解析 CSS 背景图像和选择器

标签 javascript css regex

我需要解析一段 CSS。示例:

<style ...>
.foo , #bar {
   /*some css code here*/
   background-image: url(image.png);
 }

 p { 
   background: url(image2.png) repeat-x;
   font-size: 1em;
 }

 a {
   font-size: 1.1em;
 }

</style>

我想将其转换为以下数组:

[
 {"selector":".foo , #bar", "bg":"image.png"},
 {"selector":"p", "bg":"image2.png"}
]

我有兴趣匹配 url(IMAGE) 然后获取它的选择器。

最佳答案

(?<selector>\n.*?)[^{}](\{.+?(?<=url\()(?<image>[^\)]*).+?\})

在您的 <script> 上发布 block 会给你一个有 2 个命名组的正则表达式

regex.groups("selector") = ".foo, #bar"
regex.groups("image") = "image.png"

第二场比赛

regex.groups("selector") = "P"
regex.groups("image") = "image2.png"

或者您可以在正则表达式中使用“image.png”来获取:

\n(?<selector>[^{]*?){(?<t>.+)(?<image>image.png)

得到结果

regex.groups("selector") = ".foo, #bar"

关于javascript - 解析 CSS 背景图像和选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19089465/

相关文章:

javascript - 如何使用 Javascript、URL 和 key 对数据库进行 ajax 调用

javascript - 将 CSS 样式标记添加到谷歌地图

Java正则表达式replaceAll()与前瞻

javascript - 快速正则表达式获取路径

javascript - Javascript 中的背景音乐不起作用

regex - 从字符串中删除动态链接

javascript - 具有 firestore 的云功能找不到任何数据

javascript - ReactJS - 来自网络摄像头的视频流无法正常工作

javascript - 首次单击后禁用单选按钮或分数增量

javascript - 播放中的 HTML5 视频火灾事件(暗淡页面)