【问题标题】:Matching image path inside javascript在javascript中匹配图像路径
【发布时间】:2013-06-14 15:17:10
【问题描述】:

wget 在拉取必备文件方面做得很好,但它无法检测 JS 文件中的图像路径。我需要一个正则表达式来扫描 JS 文件以查找它找到的任何图像路径。

这些路径通常嵌套如下:

$img1 = "foo/bar.png";
$img2 = 'foo/bar.jpg';
$img3 = "{'myimg':'foo/bar.png'}";

我需要一个正则表达式,它能够获取引号内的整个图像路径,但有时嵌套在 json 字符串中,或​​者以其他方式编码...本质上,通过检测是否存在来匹配整个图像路径扩展名 (jpg|png|gif)。

【问题讨论】:

  • $path = "/foo"; $img = $path + "bar.png"; 呢?
  • 正则表达式需要能够检测任何图像的存在。路径未知,文件名未知 - 例如我们可以有 /wp-content/uploads/myimage.png/images/bigredbus.jpg。我需要能够隔离图像路径,以便我可以下载它们。我不需要构造图片路径,而是在JS文件中检测并返回图片路径。
  • 我知道;我在问,以编程方式构建而正则表达式无法找到的路径呢?
  • 啊,对不起!正则表达式只需要“最合适”。我很欣赏某些情况无法满足(或者更多可以,但将在稍后阶段考虑在内)。现在,如果我能找到完整路径,我将在稍后阶段处理路径构造函数:)

标签: php regex


【解决方案1】:

试试这个模式:

$pattern = '~/?(?>[^"\'/]+/)+[^"\'\s]+?\.(?>png|jpe?g|gif)\b~';

【讨论】:

  • 这是迄今为止最合适的 - 谢谢!它还需要考虑 url 中的空格,例如“/path/to img/foo.jpg”。您能否编辑正则表达式以包含对此的支持?谢谢。
  • 如何格式化这个正则表达式以便它可以在javascript中工作?
猜你喜欢
  • 2021-05-09
  • 2013-04-03
  • 1970-01-01
  • 2011-12-13
  • 1970-01-01
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多