经典ASP类函数返回空白

时间:2011-07-27 10:54:38

标签: vbscript asp-classic

我继承了一个经典的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"))

我得到的结果是

  

测试网址:

有什么明显我做错了吗?我对ASP不是很有经验。

2 个答案:

答案 0 :(得分:1)

可能下面显示的行有问题:

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

答案 1 :(得分:1)

问题是StripNonAlphaNum()中的这一行:

If inString <> Null Then

要测试Null,您应该使用

If not IsNull(inString) then

Here is a reference