【发布时间】:2019-03-05 20:54:33
【问题描述】:
我正在尝试将所有 src 值替换为匹配的键值,文本如下所示:
Lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum <br /><br />
lorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem <img src="71521" alt="[ppm:alt id=17835]" height="426" width="638" /> ipsumlorem ipsumlorem ipsum
我的对象如下:
var mapObj = {
'71505':'https://images.e12b64dd10dd068f0b4b6e8e9e5e/71505.jpg',
'69451':'https://imagesf697987a167a07402549e86089d/69451.jpg',
'71521':'https://images673d2cf1bfcb6fcc1d30f91/71521.jpg',
...
}
我想检查 src 值是否与对象键匹配,如果匹配则将所有匹配项替换为键的相应值,我想要的输出是
Lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum <br />
lorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem
到目前为止,我有以下内容,但它不起作用
var res = row['Description'].replace(/\[(\w+)\]/g, function(s, key) {
return mapObj[key] || s;
});
我尝试了下面回答的所有解决方案,但我仍然无法替换 src。
我的 html 源代码来自 excel 表,我正在这样阅读它
const rows = fs.createReadStream(csvFilePath,{encoding: `'binary'}).pipe(parser);`
【问题讨论】:
-
非常直接的问题,但我没有看到尝试。
-
为什么
src="69451"改为src="https://imagesf697987a167a07402549e86089d/69451.jpg"而不是https://imagesf697987a167a07402549e86089d/71513.jpg? -
我正在使用 nodejs,当我在终端中执行 console.log 时,它不会更改 src,我还使用 fs.writeFile 将结果保存在文本文件中,仍然如此不改变源代码
-
@nick zoum 感谢指出,现在更正了
-
@sam 您需要记录
replace的结果。如果你这样做var a = test.replace()。您应该打印a而不是test。字符串是不可变的。
标签: javascript arrays node.js object