在处理mongodb时,在javascript中正确转义单引号

时间:2018-01-28 18:58:38

标签: javascript escaping

要在我的javascript代码中使用tts方法,我编写了这段代码:

i(class="btn-left-margin fa fa-volume-down fa-2x speak-task", onclick=`responsiveVoice.speak(${word.rq}, "French Female");return false;`)

并且法语句子被保存为mongodb为“...jusqu'à...”,即它只有一个引号。

这明显打破了代码,我得到了:

SyntaxError: missing ) after argument list

如何正确逃脱以防止此类和类似情况发生? 我记得“验证输入,逃避输出”,但我不知道如何!
修改
如果我删除单引号并将其作为“...jusquà...”,它可以正常工作。我刚刚发现在保存到mongodb之前我不知道如何正确地逃避所有与javascript相关的字符 通过阅读论坛here,我通过这一改进解决了我的问题:

onclick=`let x="${word.ea}".replace(/['"]+/g, ' ');speakEn(x)`

但我认为必须有一些最好的做法来逃避我不知道的JS中的代码,当从mongodb发布文本时会逃脱所有特殊字符(例如“<”和“>”等) )。我首先想到它可能是escape()方法,但它恰好不是那个,甚至已经弃用了。

1 个答案:

答案 0 :(得分:0)

这段代码解决了我的问题:

onclick=`let x="${word.ea}".replace(/['"]+/g, ' ');speakEn(x)`