因此,在我的node.js后端上,我有一个带有content
属性的对象,其中包含HTML字符串。现在在其中有一个img元素,我想将src属性(现在是base64字符串)替换为我的上载文件夹的路径。如何更改此src属性?
这是必填内容。我想将img元素的base64 src替换为我选择的内容
{ content: '<p><br></p><p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAmVBMV.. }
答案 0 :(得分:1)
如果您确定字符串中只有一幅图像,则可以使用正则表达式替换:
let new_content = content.replace(/src="[^"]+"/, 'src="new contents of the attribute"');
这将替换HTML中的每个src属性,因此请确保您没有多个。
如果您有更具体的需求,我通常使用cheerio(https://www.npmjs.com/package/cheerio)加载html并像在jquery(-ish)中一样对其进行编辑。
(正则表达式中的[^"]+
代表“匹配不是"
的多个字符,这通常是我在已知边界内选择某些内容的方式)
答案 1 :(得分:1)
您可以使用正则表达式替换该字符串
let newPath = "some/where/local/img.png";
let replaced = req.body.content.replace(/src="(.+?)"/igm, "src='"+newPath+'")
如果您不知道html结构,例如需要查找所有图像,则应使用cheerio
或jsdom
之类的东西来解析html字符串,在虚拟dom中进行更改。 / p>