附加在字符串中的Javascript变量不会被替换'的原始值

Javascript variables appended in a string not getting replaced with it's original value

本文关键字:替换 原始 字符串 变量 Javascript      更新时间:2023-09-26

字符串''+notify_name+'喜欢你的帖子。'来自数据库。我们将这个静态字符串存储在数据库中。

变量ntfnFound[0].body包含我们从数据库中获取的此字符串。

var notify_name = 'tintu';
console.log(ntfnFound[0].body);   /* ''+notify_name+' likes your post.' */
var body = ntfnFound[0].body;
console.log(body);   /* ''+notify_name+' likes your post.' */
console.log(''+notify_name+' likes your post.');   /*tintu likes your post*/

我的问题是,

在上面的代码中,为什么不"console.log(body);"显示"tintu喜欢你的帖子"??

为什么+notify_name+没有被替换??

还有什么解决方案可以将"var body"中的字符串转换为"tintu likes your post"??

在以下代码工作中,

console.log(''+notify_name+' likes your post.');   /*tintu likes your post*/

我的第一个猜测是:您将STRING保存在数据库中,当取出它时,它仍然是一个字符串,因此很可能转义了"和+":''和''+。

您试图完成的是在数据库中保存一个字符串,以便稍后插入变量的值。

我的方法是:保存类似"{0}喜欢你的帖子"的内容,然后在上面使用某种printf函数。

看看:相当于printf/string.format 的JavaScript

JS中没有automagic替换,您将不得不自己使用body.replace("+notify_name+",notify_name);

它在日志中起作用的原因是。因为JS按照你的要求做了:"是一个空字符串,然后你将名称和文本"喜欢你的帖子"链接起来。