我在header.asp中有一组链接,每个页面都包含这些链接;这些链接的href属性设置为当前页面加上linkID参数。有时链接引用的页面将具有查询字符串参数,但有时则不会。如果当前页面URL包含linkID参数,我需要替换它,否则我需要将其添加到当前URL。
我将Request.ServerVariables(“SCRIPT_NAME
”)和Request.ServerVariables(“QUERY_STRING
”)连接到变量 pagename 以获取当前页面URL。不幸的是,我使用的是经典的ASP / VBScript。
我认为我需要使用reg ex但不是专家,特别是在经典ASP中。当我需要替换元素时会出现问题,因为linkID参数的值可能会有所不同,因此简单的Replace方法将无效。
答案 0 :(得分:3)
您可以检查参数是否已经在查询字符串Request.QueryString("linkID") = ""
中,如果不存在则直接附加,并使用函数更新值(如果存在)。只要你没有大量参数就可以得到这样的东西,而你不需要大量优化,但是你可能不会使用ASP。
Function updateQueryStringParam(key, value)
Dim qs, x
For Each x In Request.QueryString
qs = qs & x & "="
If x = key Then
qs = qs & value & "&"
Else
qs = qs & Request.QueryString(x) & "&"
End If
Next
If Len(qs) > 0 Then
If Right(qs, 1) = "&" Then
qs = Left(qs, Len(qs)-1)
End If
End If
updateQueryStringParam = qs
End Function
您可以为检查创建另一个函数调用,然后使用上面的函数进行更新;
Function setQueryStringValue(key, value)
Dim qs
If Request.QueryString(key) = "" Then
If Len(qs) > 0 Then
qs = qs & "&"
End If
qs = key & "=" & value
Else
qs = updateQueryStringParam(key, value)
End If
setQueryStringValue = qs
End Function