【发布时间】:2017-05-30 12:03:44
【问题描述】:
使用 javascript 正则表达式,我试图将图像名称和扩展名作为 css 属性的捕获组。
要求
- 以网址开头
- 后跟括号
- 括号内可选引号
- 位置可以有路径信息
- 以 jpeg 或 jpg 或 gif 或 png 结尾
示例:
behavior: url(#default#VML); -> ignored wrong ending
background-image: url(dog.ttf); -> ignored wrong ending
background-image: url('cat.png'); -> cat.png
background-image: url(bird.gif); -> bird.gif
background-image: url('../monkey.png'); -> monkey.png
background-image: url('../../rab$bit.png'); -> rab$bit.png
background-image: url('../animal/cow.jpg'); -> cow.jpg
这是我目前所拥有的:
url(?:\(\"|\(\'|\(\/?.*\/|\()(\.+)?(\/.*\/)?(\w*)+(.png|.jpg|.gif|.jpeg)
https://regex101.com/r/3mMdTI/6
不幸的是,由于 '\w' 组,当文件名包含数字或字符(如 $)时,它会中断。有人可以提出更好的解决方案吗?
【问题讨论】:
-
您可以发布一个示例网址进行检查吗?
-
而不是
/w,您可以使用[^\'\"](否定的单引号和双引号集以匹配除结尾之外的所有内容
标签: javascript regex