我需要解析html字符串并用它的base64数据替换图像源。
例如:
输入html:
<p>This is some text</p>
<p><img src="sys_attachment.do?sys_id=e57ff4badb984300e330b04ffe9619ce" alt="" width="auto" height="auto" /> </p>
我需要从src="sys_attachment.do?sys_id=e57ff4badb984300e330b04ffe9619ce"
中提取sys_id值,并用它的base64替代替换整个src
,以获得类似这样的内容:
<p>This is some text</p>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkEAAAIKCAY....." 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);
任何想法如何解决这个问题?
答案 0 :(得分:1)
使用src
获取htmlString.match(/=.*/)[0].replace("=",'');
。
使用btoa
将其更改为Base64。
var htmlString = '<img src="sys_attachment.do?sys_id=e57ff4badb984300e330b04ffe9619ce"/>';
var sys_id = htmlString.match(/=.*/)[0].replace("=",'');
sys_id = btoa(sys_id);
htmlString = htmlString.replace(/src=\"[^"]*"/,'src="data:image/png;base64,'+sys_id+'"');
console.log(htmlString);