首页 > 解决方案 > 在 node.js 中删除和添加属性到 html 字符串

问题描述

所以在我的 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.. }

标签: javascripthtmlnode.js

解决方案


如果您确定字符串中只有一张图像,则可以使用正则表达式替换:

let new_content = content.replace(/src="[^"]+"/, 'src="new contents of the attribute"');

这将替换您的 html 中的每个 src 属性,因此请确保您没有多个。
如果您有更具体的需求,我通常使用cheerio ( https://www.npmjs.com/package/cheerio ) 加载 html 并像在 jquery(-ish) 中一样对其进行编辑。

[^"]+正则表达式中的代表“匹配多个不是的字符"”,这通常是我在已知边界内选择某些内容的方式)


推荐阅读