webForumDet fria alternativet

Regular Expressions - citering

7 svar · 354 visningar · startad av LeonL

LeonLMedlem sedan dec. 20025 871 inlägg
#1

Vi håller på med ett enkelt forum just nu, och har stött på ett RegExp-problem. Vi vill så gärna använda oss utav en citeringsfunktion, ungefär som den här på wF. Det går bra att använda citat-taggar utanför varandra, men det går inte lika bra att nästla citat-taggar.

Koden ser just nu ut så här:

.Pattern = "\[citat\]((.|\s)*?)\[/citat\]"
strReturn = .Replace(strReturn, "<br /><br /><span style=""font-size: 10px"">Citat:</span><br /><div class=""code_area"">$1</div><br />")

Hur skall man göra för att både nästlade citat-taggar och fristående citat-taggar att fungera?

r\ Jag har redan sökt efter relaterande trådar, men de jag fick upp hjälpte tyvärr inte.

SebbeMedlem sedan jan. 20032 285 inlägg
#2

Löste det med funktionen

Function Citat(str)
  Do Until InStr(str, "[ citat]") = 0 OR InStr(str, "[/citat]") = 0
    intStartPos = InStr(str, "[ citat]")
    intStopPos = InStr(str, "[/citat]")

    str = Replace(str, "[ citat]", "<br /><span style=""font-size: 10px"">Citat:</span><br /><div class=""code_area"">", 1, 1)
    str = Replace(str, "[/citat]", "</div><br />", 1, 1)
  Loop

  Citat = str
End Function

istället. :)

LeonLMedlem sedan dec. 20025 871 inlägg
#3

Japp, och vem var det som "kom på" lösningen? ;) :e :bla

WebbisNetMedlem sedan feb. 20032 027 inlägg
#4

Hur använder man den funktionen?

SebbeMedlem sedan jan. 20032 285 inlägg
#5

WebbisNet skrev:

Hur använder man den funktionen?

Precis som man använder vilken annan funktion som helst.

Response.Write(Citat("[ citat]hejsan...[/citat]"))

/red Kom på att de två översta raderna i funktionen blev onödiga efter att jag hade gjort om funktionen, så dem kan du ta bort om du vill. ;)

WebbisNetMedlem sedan feb. 20032 027 inlägg
#6

Får det inte att funka i den här textarean.....det ska vara när man svarar på ett PM i mitt community så ska den föregående texten skilja sig från den nya

Jag får

Slut på programsats förväntas.
/mail/reply.asp, line 38, column 34
PrintTextarea "txtMess", "(Citat("[citat] "&reply("message")&" [/citat]"))", standardInputWidth+485,standardInputHeight+200
---------------------------------^
SebbeMedlem sedan jan. 20032 285 inlägg
#7
PrintTextarea "txtMess", Citat("[ citat]" & reply("message") & "[/citat]"), standardInputWidth+485,standardInputHeight+200

Tror jag nog ska fungera. :)

WebbisNetMedlem sedan feb. 20032 027 inlägg
#8

Sebbe skrev:

PrintTextarea "txtMess", Citat("[ citat]" & reply("message") & "[/citat]"), standardInputWidth+485,standardInputHeight+200

Tror jag nog ska fungera. :)

funkar bättre.....ska bara försöka få koden att köras och inte visas i textarean :-)

135 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)