需要找到字符串的出现并替换为另一个字符串

时间:2017-08-22 13:30:40

标签: 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" /> &nbsp;</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" /> &nbsp;</p>

我尝试了这个,但它没有按预期工作

var htmlString = '<img src="sys_attachment.do?sys_id=e57ff4badb984300e330b04ffe9619ce"/>';

var res = htmlString.match(/^<img src="sys_attachment.do?sys_id=.*"$/g);

任何想法如何解决这个问题?

1 个答案:

答案 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);