se si tratta di sostituire un parametro che c'è già ti basta un replace
ti faccio un esempio per sostituire parametro1 col valore NuovoValore1
codice:
set objRE=Server.CreateObject("VBScript.RegExp")
objRE.Pattern="((\?|&)parametro1=).*?(&|$)"
url = "http://www.sito.it/?parametro1=valore¶metro2=valore2¶metro3=valore3"
Response.Write Server.HTMLEncode(objRE.Replace(url,"$1NuovoValore1$3"))
però se vuoi mettere il parametro in querystring indipendentemente dal fatto che il parametro sia già presente o meno ti conviene fare una funzioncina
tipo così
codice:
function ParametroQueryString(strurl,nomeParametro,valoreParametro)
arrTemp=Split(strurl,"?")
if UBound(arrTemp)=1 then
set re=Server.CreateObject("VBScript.RegExp")
re.Pattern="((^|&)" & nomeParametro & "=).*?(&|$)"
re.Global=true
re.IgnoreCase=true
if re.Test(arrTemp(1)) then
ParametroQueryString=arrTemp(0) & "?" & re.Replace(arrTemp(1),"$1" & valoreParametro & "$3")
else
ParametroQueryString=arrTemp(0) & "?" & arrTemp(1) & "&" & nomeParametro & "=" & valoreParametro
end if
else
ParametroQueryString=strurl & "?" & nomeParametro & "=" & valoreParametro
end if
end function
url = "http://www.sito.it/?parametro1=valore¶metro2=valore2¶metro3=valore3"
Response.Write Server.HTMLEncode(url) & "
"
Response.Write Server.HTMLEncode(ParametroQueryString(url,"parametro1","valore1cambiato")) & "
"
Response.Write Server.HTMLEncode(ParametroQueryString(url,"parametro2","valore2cambiato")) & "
"
Response.Write Server.HTMLEncode(ParametroQueryString(url,"parametro3","valore3cambiato")) & "
"
Response.Write Server.HTMLEncode(ParametroQueryString(url,"parametroNuvo","valoreNuovo")) & "
<hr>"