我继承了一个经典的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, "&", "")
inString = Replace(inString, "®", "")
inString = Replace(inString, "™", "")
inString = Replace(inString, "©", "")
inString = Replace(inString, ""e;", "")
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不是很有经验。
答案 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