繁体   English   中英

在node.js中删除属性并将其添加到html字符串

[英]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结构,例如需要查找所有图像,则应使用cheeriojsdom来解析html字符串,并在虚拟dom中进行更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM