我有这个例子
<img style="height:375; width:500;" src="../img/ris1_1.jpg" ALIGN="center">
<img src="img/ris1_2.jpg" style="height:375; width:500;" ALIGN="center">
我使用此RegExp替换src标记:
(?<=(<img src=['"]))[^"']+
但它只找到了src紧随其后的imgs
此外,我只需要替换相对路径,而不是绝对路径。所以如果我在src中有绝对路径,我就不能替换它。
P.S。是啊!我做完了,谢谢Shomz!就这样做:
tag.replace(/(img[^>]*src=['"])+(?!http:\/\/)\s*([^'"]*)/gi,"$1http://mydomain.com/$2");
答案 0 :(得分:0)
不是仅使用搜索字符串选择img元素的src属性值,而是使用捕获搜索字符串(<img.*?src=['"])[^"']+
并使用\1
启动替换字符串以保留{{1}的所有内容替换为<img
或"
。
当然,如果src属性没有用于img之外的任何其他元素,你可以简单地使用搜索字符串'
。
Tony的建议也很好。通过搜索(?<=src=['"])[^"']+
并使用替换字符串(<img)(.+?)( src=["'][^"']+["'])
,可以首先通过将{s}属性移动到\1\3\2
之后的第一个位置来标准化所有img元素。
答案 1 :(得分:0)
如果tag
是您的标记,您可以执行以下操作:
tag.replace(/(img[^>]*src=['"])+(\s*)[^'"]*/g, '$1REPLACED.jpg');
更新
要省略绝对网址,请使用此正则表达式(img[^>]*src=['"])+(?!http:\/\/)\s*[^'"]*
。