要在我的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()方法,但它恰好不是那个,甚至已经弃用了。
答案 0 :(得分:0)
这段代码解决了我的问题:
onclick=`let x="${word.ea}".replace(/['"]+/g, ' ');speakEn(x)`