用于转换任意字符串以在JavaScript中使用的函数

时间:2010-11-05 08:05:00

标签: javascript regex asp-classic vbscript

我需要编写一个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>';

我希望你明白这一点。该功能不必是防弹但接近。

2 个答案:

答案 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>