<%
' 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:
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)
%>
$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.
264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25