【问题标题】:Replace part of img path with regex in jquery用jquery中的正则表达式替换部分img路径
【发布时间】:2012-10-28 06:02:13
【问题描述】:

我想浏览网站上的整个页面并将相对的 img 路径替换为“/”。例如:

    $("body img").attr("src",function(){
        return this.src.replace("uploads","/uploads");
    });

但是,在相对路径可能与上述不同的情况下,我想使用正则表达式来解释所有不同的情况。我知道图像都将驻留在同一个位置,但要替换的各种路径可能是“上传、../uploads 或 ../../uploads 等。

任何帮助将不胜感激..?

【问题讨论】:

  • 我相信有些浏览器会报告图像 src 的绝对 URL,而不是 HTML 属性中的内容。这会使事情复杂化。无论如何,您尝试做的事情的价值是什么?您要更改实际图像吗?
  • ...或简化事情。您可以先检查 URL 是否已经是绝对的,然后将属性显式设置为该 URL。或者我想出于所有意图和目的,您的工作已经完成。当然,您仍然必须处理浏览器不为您执行此操作的情况。
  • 这是一个好点。我没有想到会更改链接的浏览器。我实际上要求一个自动更改链接作为清理机制的cms(见图)。所以我的最终目标是找到所有不是 /uploads/... 的路径并相应地更改它们。我没有替换图像,只是确保一旦 cms 编辑完成,图像仍然可以工作。

标签: jquery regex image replace src


【解决方案1】:

使用这个

$('img').each(function(){
    $(this).attr('src',$(this).attr('src').replace(/^/,"/"));
      $('body').append('<br />');
$('body').append($(this).attr('src'));

})​

这是小提琴

http://jsfiddle.net/7yNg7/

【讨论】:

  • 谢谢,但这不考虑“../”或“../../”我如何解释那些使用正则表达式的人,因为它们更常见
  • 不得不做一些小的调整,但最终让它按我需要的方式工作。只需要更改 .replace(/^/,"/"));到 .replace(/.*uploads/,"/my/jmg/path"));感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 2011-11-20
  • 1970-01-01
  • 2015-09-03
  • 2021-11-07
相关资源
最近更新 更多