【发布时间】:2017-07-14 02:39:53
【问题描述】:
我有一个用 VB 脚本编码的经典 ASP,它的脚本标记中也有 Java 脚本代码。
VS Script 有一个数组,有些行包含一个单引号。这个 VB Script 数组正在传递给 Java 脚本。由于某些字符串值包含单引号,因此将字符串传递给 Java 脚本后,网页将无法正常工作。
在传递给 Java 脚本之前,我尝试在 VB 脚本中转义单引号
Dim escapeInvalidString
escapeInvalidString = Replace(objrec.Fields("Name"), "'", """chr(39)""")
vbStr = escapeInvalidString
也试过了
escapeInvalidString = Replace(objrec.Fields("Name"), "'", "''")
我在 Java 脚本中尝试过,也没有在 VB 脚本中转义
var jsStr ="";
jsStr = '<%= vbStr %>'.replace(/'/g, "\\'");
也试过这个。
jsStr = '<%= vbStr %>'.jsStr.replace(/\"/g,'\\"');
我有一种感觉,我需要在 VB 脚本部分中转义单引号,但上述方法不起作用。任何提示将不胜感激。
【问题讨论】:
-
VB 代码需要输出字符串,其中嵌入的
'字符更改为\',但您的代码似乎试图将它们更改为''。 (你迫不及待地想在 JS 中进行替换,因为到那时你已经从没有正确转义的字符串中得到语法错误。) -
@nnnnnn 感谢您的回复。我了解我尝试做的和现在想做的之间的不同。很有帮助。
标签: javascript vbscript escaping str-replace single-quotes