转义字符串,以便它可以安全地在javascript中使用

时间:2018-05-31 06:30:15

标签: javascript lodash

我有一个生成html的javascript模板引擎,所有运行都在浏览器中运行。这是lodash。

模板看起来像这样(只是相关部分):

       <button  onclick="somemethod('<%pruefobjekt.Name%>')" 
        </button>

问题:如果 pruefobjekt.Name 有一个&#39;在其值中,则生成的javascript无效。我尝试了 encodeURI ,但这不会取代&#39;。

是否有javascript函数?还是lodash功能?我知道我可以简单地取代&#39;用一些符号然后将其替换回来,但这是最后的解决方案。

这个问题换句话说:是否有一个javascript函数可以转义字符串,因此可以在javascript中使用。

非常感谢您的回答。

1 个答案:

答案 0 :(得分:1)

下面的一些东西对你有用吗?如果你可以使用正则表达式。

function escapeString( str ) {
    return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
}

或者Javascript有一个名为stringify的内置方法。

JSON.stringify('String with "quotes"')

结果

 "String with \"quotes\""

希望这有帮助

相关问题