我需要编写一个VBScript函数,它可以将任意字符串转换为我可以在JavaScript中安全使用的字符串。像这样:
"Hello World"
-- becomes --
"Hello World"
"Hello
World"
-- becomes --
"Hello\nWorld"
"Hello
World"
-- becomes --
"Hello\n\tWorld"
"Hello'World"
-- becomes --
"Hello\'World"
我需要使用这样的函数:
var foo = '<p><%= thatfunction( Recordset( "TextField" ) ) %></p>';
我希望你明白这一点。该功能不必是防弹但接近。
答案 0 :(得分:2)
@Salman答:这是你可以使用的经典ASP功能
Function thatfunction(ByRef input_string)
If NOT IsNull(input_string) AND input_string <> "" Then
Dim working_string
working_string = input_string
working_string = Replace(working_string, vbNewLine, "\n")
working_string = Replace(working_string, vbTab, "\t")
working_string = Replace(working_string, "'", "\'")
' .. other escape values/strings you may wish to add
thatfunction = working_string
End If
End Function
答案 1 :(得分:0)
您可以使用JavaScriptSerializer
Dim serializer as New JavaScriptSerializer()
Dim jsString as String = serializer.Serialize(your_string_here);
...但是您的示例显示了嵌入在HTML元素中的文本 - 而不是Javascript字符串。也许你正在寻找HttpUtility.HtmlEncode()。您的示例可能如下所示:
<p><%= HttpUtility.HtmlEncode( Recordset( "TextField" ) ) %></p>