【发布时间】:2013-02-11 19:24:03
【问题描述】:
我有一个项目,其中评估了一些 JavaScript 变量。因为字符串需要转义(仅单引号),所以我在测试函数中编写了完全相同的代码。我有以下一些非常简单的 JavaScript 代码:
function testEscape() {
var strResult = "";
var strInputString = "fsdsd'4565sd";
// Here, the string needs to be escaped for single quotes for the eval
// to work as is. The following does NOT work! Help!
strInputString.replace(/'/g, "''");
var strTest = "strResult = '" + strInputString + "';";
eval(strTest);
alert(strResult);
}
我想提醒它,说:fsdsd'4565sd。
【问题讨论】:
-
一个相对安全的方法可能是
var strResult=eval("("+strInputString+")");。此外,STRING是不可变的,因此string.replace()返回替换结果,而不是修改字符串。 -
这是你所期待的jsfiddle.net/ebTtp
标签: javascript string escaping eval