---
title: "Köra en funktion i ett Regular Expression"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/41675-köra-en-funktion-i-ett-regular-expression"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "edebro"
published: "2002-04-15T17:33:19.000Z"
updated: "2002-04-18T14:40:21.000Z"
replies: 4
views: 280
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/41675-köra-en-funktion-i-ett-regular-expression"
---

# Köra en funktion i ett Regular Expression

## #1 — edebro, 2002-04-15T17:33Z

Min kod ser ut så här:

```
<%
' funktion som gör om text till korrekt formaterad kod
Function formatText(arg)
	Dim editText, objRegExp
	editText = Server.HTMLEncode(arg)
	
	Set objRegExp = New RegExp
	objRegExp.Pattern = "\[USER\](.*?)\[\/USER\]"
	objRegExp.IgnoreCase = True
	objRegExp.Global = True
	
	editText = objRegExp.Replace(editText, "<FONT COLOR=GREEN>$1</FONT>")
	
	Set objRegExp = Nothing
	
	formatText = editText
	
End Function

strHTML = "[USER]dk[/USER]l asjkd [USER]fjwlekj asklf jasdf [/USER]j"

Response.Write formatText(strHTML)
%>
```

Det jag skulle vilja göra är att anropa en annan funktion i objRegExp.Replace, ungefär så här:

editText = objRegExp.Replace(editText, annanFunktion($1))

Men det vill inte fungera. Är det nån som vet hur man löser detta, om det går dvs?

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

## #2 — edebro, 2002-04-17T17:24Z

ingen som vet?

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

## #3 — Vide, 2002-04-18T06:16Z

Fråga: Vad exakt är det som inte fungerar, och får du ett felmeddelande?

Mvh, Vide

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

## #4 — edebro, 2002-04-18T13:29Z

Vide: kontrar med en annan fråga. Du vet altså att det ska gå att köra en funktion tillsammans med en Replace sats i Regular Expressions

Jag får felmeddelandet:

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0408)
Ogiltigt tecken
/test3.asp, line 12, column 53

Och hela min kod ser nu ut så här:

```
<%
' funktion som gör om text till korrekt formaterad kod
Function formatText(arg)
	Dim editText, objRegExp
	editText = Server.HTMLEncode(arg)
	
	Set objRegExp = New RegExp
	objRegExp.Pattern = "\[USER\](.*?)\[\/USER\]"
	objRegExp.IgnoreCase = True
	objRegExp.Global = True
	
	editText = objRegExp.Replace(editText, annanFunktion($1))
	
	Set objRegExp = Nothing
	
	formatText = editText
	
End Function

Function annanFunktion(arg)
	Dim strTexten
	strTexten = "<FONT SIZE=4>" & arg & "</FONT>"
	
	annanFunktion = strTexten
End Function

strHTML = "[USER]dk[/USER]l asjkd [USER]fjwlekj asklf jasdf [/USER]j"

Response.Write formatText(strHTML)
%>
```

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

## #5 — Vide, 2002-04-18T14:40Z

$1 är ju bara en positionsangivelse som ger regexp möjlighet att lägga in strängen som skall ersättas, $1 är inte någon variabel och måste således ligga mellan "".

Så jag är skeptisk till att det kommer att fungera, men det betyder inte att det inte gör det, så testa med en $1 som sträng istället.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/41675-köra-en-funktion-i-ett-regular-expression
