在JavaScript中,我有一个包含DOM片段的字符串。我如何找到并替换图像的src属性?JavaScript中的正则表达式 - 替换Image src属性
我想用新路径替换所有图像的路径,但保留图像名称。并非所有路径都是相同的,可能来自不同的地点。 我的正则表达能力最差。
例如:
Change
<img src='path/to/image/name.jpg' />
into
<img src='newPath/name.jpg' />
在JavaScript中,我有一个包含DOM片段的字符串。我如何找到并替换图像的src属性?JavaScript中的正则表达式 - 替换Image src属性
我想用新路径替换所有图像的路径,但保留图像名称。并非所有路径都是相同的,可能来自不同的地点。 我的正则表达能力最差。
例如:
Change
<img src='path/to/image/name.jpg' />
into
<img src='newPath/name.jpg' />
试试这个:
str.replace(/src='(?:[^'\/]*\/)*([^']+)'/g, "src='newPath/$1'");
拿了秋葵的答案,并增加了一些事情,以改善它:
如果输入字符串包含东西除<img>
以外的其他标签可能有 a src
属性 - 这将不再与 匹配/替换它们。
src
属性可能是 使用单引号或双引号。
该测试不区分大小写。
在所得:
string.replace(/<img([^>]*)\ssrc=(['"])(?:[^\2\/]*\/)*([^\2]+)\2/gi, "<img$1 src=$2newPath/$3$2");
干杯gnarf。 – redsquare 2009-08-21 08:34:24
如果以字符串形式使用原始(非DOM)数据,诸如HTML,上述不匹配双引号字符。此代码可能证明是有用的,太:
root = serviceURL("file") + "&src=" + encodeURIComponent(root);
// html itself
html = html.replace(/src=['"](?:[^"'\/]*\/)*([^'"]+)['"]/g, "src='" + root + "/$1'");
更好的解决方案 – 2017-11-01 16:40:57
以上解决方案并不在我的情况很好地工作,我在那里将它存储在数据库之前更换绝对路径的所有相对路径。但这是我的解决方案,以防别人为别人工作。干杯。
replace(/<img([^>]*)\ssrc=(['"])(\/[^\2*([^\2\s<]+)\2/gi, "<img$1 src=$2" + BaseURL + "$3$2");
我在项目中使用这些表达,工作就像魅力,处理所有的情况下,像,报价,双引号,文本等多种图像标记 在Javascript中
text.replace(/\<img([^>]*)\ssrc=('|")([^>]*)\2\s([^>]*)\/\>/gi, "<img$1 src=$2newPath/$3$2 $4/>");
在PHP
preg_replace('/\<img([^>]*)\ssrc=(\'|\")([^>]*)\2\s([^>]*)\/\>/', "<img$1 src=$2newPath/$3$2 $4/>",$text);
似乎没有工作。将'http://blog.internetnews.com/skerner/smk/testpilot.png'更改为 'http://newpath/blog.internetnews.com/skerner/smk/testpilot.png' – redsquare 2009-08-19 08:50:12
它会这样做。你需要使用“src ='newPath/$ 2'”作为替换 – Xetius 2009-08-19 08:51:38
优秀的,似乎是做的伎俩,欢呼Xetius – redsquare 2009-08-19 08:54:14