---
title: "regexp för att byta ut värde i en querystring"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/126407-regexp-för-att-byta-ut-värde-i-en-querystring"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Obbelix"
published: "2005-04-14T16:13:24.000Z"
updated: "2005-04-26T11:47:50.000Z"
replies: 6
views: 272
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/126407-regexp-för-att-byta-ut-värde-i-en-querystring"
---

# regexp för att byta ut värde i en querystring

## #1 — Obbelix, 2005-04-14T16:13Z

Hej.

Undrar om man kan göra en funktion som byter ut ett värde i en querystring.
Säg att man har en sökväg som denna:
"sida.asp?id1=12&id2=21&id3=22"

och sen i sidan vill man ha kvar alla querys fast bara ändra värdet på en typ:
"sida.asp?id1=12&id2=21&id3=**44**"

Så då tänkte jag att man istället för att behöva på varje länk skriva

```
sida.asp?id1=<%=request.querystring("id1")%>&id2=<%=request.querystring("id1")%>&id3=44
```

så skulle det räcka med

```
sida.asp?<%=request.querystring%>
```

men då ha en funktion som kan byta ut lite typ

```
sida.asp?<%=funktionen(request.querystring,"id3","44")%>
```

och resultatet blir

```
sida.asp?id1=12&id2=21&id3=44
```

Det går väl inte med en enkel replace eftersom om man har en wuery som heter ID och en annan ID2 och vill ändra ID så kommer ju även ID2 ändras osv..

Kanske finns nåt smartare sätt än det jag tänkt mig?
Skulle man kanske även kunna utveckla den lite så att man kan ändra flera värden i en å samma? kanske

```
sida.asp?<%=funktionen("id1=12","id2=21")%>
```

och att då funktionen alltid utgår ifrån request.querystring och sen på nåt magiskt sätt byter ut och returnerar rätt query.

Nån som fattar vad jag menar och vill ha ut av det hela?

Permalänk: https://www.webforum.nu/p/126407

## #2 — m_soderlund, 2005-04-14T16:19Z

Min fråga blir då: varför vill du ändra värdet på en querystring? Vad vill du egentligen åstadkomma?

Permalänk: https://www.webforum.nu/p/1592106

## #3 — Obbelix, 2005-04-14T16:21Z

Ja men säg att du har en gästbok eller liknande med paging.
Men för att gästboken ska vara rätt å så (även saker runt den) så behövs de andra queryna. Och om jag bara vill byta ut "page=" skulle det underlätta med en sån funktion.

Är du med? :)

Permalänk: https://www.webforum.nu/p/1592108

## #4 — Guffa, 2005-04-14T20:33Z

Du kan använda regular expression för att ersätta värdet.

Du kan bygga ihop mönstret så här: "(^&" & strKey & "=)\[^&\](&\|$)" och sedan ersätta med "$1" & Server.URLEncode(strValue) & "$2".

Du behöver inte göra en funktion som ersätter flera värden på en gång, du kan anropa funktionen flera gånger:

sida.asp?\<%=funktionen(funktionen(Request.Querystring,"id1","12"),"id2","21")%\>

Här har du en artikel om ersättning med hjälp av RegExp:
<http://guffa.com.loopiadns.com/Programming_article.asp?id=3>

Permalänk: https://www.webforum.nu/p/1592232

## #5 — Obbelix, 2005-04-26T08:47Z

Har först nu hunnit kika på detta och gjort följande funktion:

```
function fixquery(sStr,sKey,sValue)

 Set objRegExp = New regexp 
 objRegExp.Global = true 
 objRegExp.IgnoreCase = true 
 objRegExp.Pattern = "(^&" & sKey & "=)[^&](&|$)"
 fixquery = objRegExp.Replace(sStr, "$1" & sValue )

end function
```

Men den vill inte funka nåt vidare, eller rättare sagt , inte alls.

Om jag anropar den såhär:

```
sidan.asp?<%=fixquery(request.querystring, "page", "12")%>
```

så returnerar den querystringen som den ser ut från början.

Har testat "alla" kombinationer med $1/$2 osv men den byter inte ut nåt. Och då jag inte har nån större koll på regexp så vet jag inte vad som är fel.

Permalänk: https://www.webforum.nu/p/1599738

## #6 — Guffa, 2005-04-26T11:38Z

Använd de thär mönstret: "(^\|\\?\|&)(" & strKey & "=)\[^&\]\*(&\|$)" och ersätt med "$1$2" & Server.URLEncode(strValue) & "$3".

Permalänk: https://www.webforum.nu/p/1599816

## #7 — Obbelix, 2005-04-26T11:47Z

Tackar tackar!

Funkar perfekt :)

Permalänk: https://www.webforum.nu/p/1599820

---

Tråden på webben: https://www.webforum.nu/amne/asp/126407-regexp-för-att-byta-ut-värde-i-en-querystring
