在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