首页 > 解决方案 > 转义字符串,以便可以在 javascript 中安全使用

问题描述

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

模板如下所示(仅相关部分):

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

问题:如果pruefobjekt.Name的值中有 ',则生成的 javascript 无效。我试过encodeURI,但这不会取代 '.

有没有一个javascript函数呢?还是一个lodash函数?我知道我可以简单地将 ' 替换为某个符号,然后将其替换回来,但这是最后的解决方案。

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

非常感谢你的回答。

标签: javascriptlodash

解决方案


像下面这样的东西对你有用吗?如果您可以使用正则表达式。

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

否则 Javascript 具有称为 stringify 的内置方法。

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

结果

 "String with \"quotes\""

希望这可以帮助


推荐阅读