Javascript 需要找到字符串的匹配项并替换为另一个字符串
我需要解析html字符串并用它的base64数据替换图像源 例如: 输入html:Javascript 需要找到字符串的匹配项并替换为另一个字符串,javascript,regex,Javascript,Regex,我需要解析html字符串并用它的base64数据替换图像源 例如: 输入html: <p>This is some text</p> <p><img src="sys_attachment.do?sys_id=e57ff4badb984300e330b04ffe9619ce" alt="" width="auto" height="auto" /> </p> 我试过了,但效果不理想 var htmlString =
<p>This is some text</p>
<p><img src="sys_attachment.do?sys_id=e57ff4badb984300e330b04ffe9619ce" alt="" width="auto" height="auto" /> </p>
我试过了,但效果不理想
var htmlString = '<img src="sys_attachment.do?sys_id=e57ff4badb984300e330b04ffe9619ce"/>';
var res = htmlString.match(/^<img src="sys_attachment.do?sys_id=.*"$/g);
var htmlString='';
var res=htmlString.match(/^
你知道如何解决这个问题吗?使用htmlString.match(/=.*/)[0]获取src
。替换(“=”,”;
)
使用将其更改为Base64
var htmlString='';
var sys_id=htmlString.match(/=.*/)[0]。替换(“=”,”);
系统id=btoa(系统id);
htmlString=htmlString.replace(/src=\“[^”]*”/,'src=“data:image/png;base64,+sys\u id+”);
console.log(htmlString);
我不能使用document.getElementsByTagName,因为我使用的是服务器端javascript,我只需要在不操纵DOM的情况下处理字符串,所以@Oleg很容易。现在检查答案可以使/=.*/
正则表达式更具体,这样它就只匹配src
属性,而不是任何属性可能位于img
上的属性,例如标题
。
var htmlString = '<img src="sys_attachment.do?sys_id=e57ff4badb984300e330b04ffe9619ce"/>';
var res = htmlString.match(/^<img src="sys_attachment.do?sys_id=.*"$/g);