Функция для преобразования произвольной строки для использования внутри JavaScript - PullRequest
2 голосов
/ 05 ноября 2010

Мне нужно написать функцию 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 ]

2 голосов
/ 05 ноября 2010

@ Салман А. Вот классическая функция 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
0 голосов
/ 05 ноября 2010

Вы можете использовать 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>
...