Классическая функция класса ASP, возвращающая пустое - PullRequest
0 голосов
/ 27 июля 2011

Я унаследовал классический сайт ASP, который имеет довольно надежные пользовательские CMS.Недавно мы переместили сайт на одну из наших хостинговых машин и недавно заметили некоторые проблемы с получением значений функций frmo во включаемом файле (по крайней мере, так я думаю).Существует несколько вложенных включаемых файлов, но я уверен, что все они включены правильно.

Я уверен, что эти включения работают правильно, так как я проверил изменение пути и выдает ошибку.

Вот код включения:

<!--#include virtual="/admin/core/functions/fncGlobal.asp" -->

Функция, от которой я пытаюсь получить значение:

Function FormatURL(ByRef in_str)
    Dim BadChars, RepChars, NewString, i
    NewString = Trim(in_str)
    NewString = StripNonAlphaNum(NewString)
    NewString = Trim(NewString)
    NewString = Replace(NewString, " ", "-")
    NewString = Replace(NewString, "----", "-")
    NewString = Replace(NewString, "---", "-")
    NewString = Replace(NewString, "--", "-")
    FormatURL = LCase(NewString)
End Function

Функция для удаления буквенно-цифровых символов:

Function StripNonAlphaNum(inString)
    Dim oRE, strOutput, theString
    If inString <> Null Then    
        inString = Replace(inString, "'", "")
        inString = Replace(inString, "&amp;", "")
        inString = Replace(inString, "&reg;", "")
        inString = Replace(inString, "&trade;", "")
        inString = Replace(inString, "&copy;", "")
        inString = Replace(inString, "&quote;", "")
        Set oRE = New Regexp
        oRE.Global = True
        oRE.IgnoreCase = True
        oRE.Pattern = "[\W_]"
        strOutput = oRE.Replace(inString, " ")
        StripNonAlphaNum = strOutput
    Else
        StripNonAlphaNum = ""
    End If
End Function

Я тестировал возврат строки из этой функции, но все равно получаю тот же пустой результат.

Я тестирую функцию следующим образом:

Response.Write("Test URL: " & FormatURL("Format URL Title Test"))

РезультатЯ получаю

Тестовый URL:

Есть ли что-то очевидное, что я делаю неправильно?Я не очень опытен с ASP.

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Проблема в этой строке в StripNonAlphaNum():

If inString <> Null Then

Чтобы проверить на Null, вы должны использовать вместо

If not IsNull(inString) then

Вот ссылка .

1 голос
/ 27 июля 2011

, вероятно, строка, показанная ниже, делает что-то не так:

NewString = StripNonAlphaNum(NewString)

Вы пытались закомментировать эту строку, чтобы увидеть, что происходит?

Я закомментировал эту строку, и она работает нормально

В этом коде нет ничего плохого

Module Module1

    Function FormatURL(ByRef in_str)
        Dim BadChars, RepChars, NewString, i
        NewString = Trim(in_str)
        NewString = Trim(NewString)
        NewString = Replace(NewString, " ", "-")
        NewString = Replace(NewString, "----", "-")
        NewString = Replace(NewString, "---", "-")
        NewString = Replace(NewString, "--", "-")
        FormatURL = LCase(NewString)
    End Function


    Sub Main()
        Console.WriteLine(FormatURL("Format URL Title Test"))
        Console.Read()
    End Sub

End Module
...