代码之家  ›  专栏  ›  技术社区  ›  yonexbat

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

  •  0
  • yonexbat  · 技术社区  · 8 年前

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

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

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

    问题是:如果 pruefobjekt.名称 值中有一个',则生成的javascript无效。我试过了 编码uri ,但这不会取代'。

    有没有一个javascript函数来实现这个功能?还是洛达斯函数?我知道我可以简单地用一些符号替换“然后再替换回来,但这是一个万不得已的解决方案。

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

    非常感谢你的回答。

    1 回复  |  直到 8 年前
        1
  •  1
  •   ngChaitanya    8 年前

    下面的东西对你有用吗?如果你可以使用regex。

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

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

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

    结果

     "String with \"quotes\""
    

    希望这有帮助