[英]Removing and adding an attribute to an html string in node.js
因此,在我的node.js后端上,我有一个带有content
属性的对象,其中包含HTML字符串。 现在在其中有一个img元素,我想将src属性(现在是base64字符串)替换为我的上载文件夹的路径。 如何更改此src属性?
这是req.body.content。 我想将img元素的base64 src替换为我选择的内容
{ content: '<p><br></p><p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAmVBMV.. }
如果您确定字符串中只有一个图像,则可以使用正则表达式替换:
let new_content = content.replace(/src="[^"]+"/, 'src="new contents of the attribute"');
这将替换html中的每个src属性 ,因此请确保您没有多个。
如果您有更具体的需求,我通常使用cheerio( https://www.npmjs.com/package/cheerio )加载html并像在jquery(-ish)中一样对其进行编辑。
(正则表达式中的[^"]+
代表“匹配不是"
”的多个字符,这通常是我在已知边界内选择内容的方式)
您可以用正则表达式替换该字符串
let newPath = "some/where/local/img.png";
let replaced = req.body.content.replace(/src="(.+?)"/igm, "src='"+newPath+'")
如果您不了解html结构,例如需要查找所有图像,则应使用cheerio
或jsdom
来解析html字符串,并在虚拟dom中进行更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.