【发布时间】:2015-03-24 14:52:33
【问题描述】:
以下是我的情况: var sql = 'INSERT INTO \"template_items\" (\"item\") VALUES (\"0a\")';
alert(sql) 给出以下值:
插入“template_items”(“item”)值(“0a”)
这是正确的,并且显示了正确的双引号转义。
但是当在IE9调试器(F12)中查看变量sql时,下面是它的值
"插入到\"template_items\" (\"item\") VALUES (\"0a\")"
反斜杠仍然存在。
现在,当我在以下语句中使用变量 sql 时,这会产生问题:
connection.BeginTrans();
connection.Execute(sql);
connection.CommitTrans();
这个问题的解决方法是什么?
【问题讨论】:
-
这根本不能回答你的问题,但是......为什么你的 JavaScript 中有 SQL? (除非您使用 Web SQL 客户端,这很好,但 doesn't work with IE anyway)
-
至于您的“问题”,您的调试器正在向您显示字符串的表示(包括初始和终止引号),以及转义反斜杠。但是,这只是表示;您的字符串实际上不包含它们(正如您使用
alert显示值时所看到的那样)。 -
当我使用 connection.Execute(sql);语句,它采用调试器值而不是警报值。现在,当我不转义双引号时,调试器会自动显示反斜杠。所以似乎没有办法在 IE9 调试器和执行(sql)语句中保留没有反斜杠的双引号
标签: javascript escaping double quotes