Mera regexp... ;)
Set objRX = New RegExp
objRX.Global = True
objRX.IgnoreCase = True
objRX.Pattern = "\[.*\]"
strTexten = objRX.Replace(strTexten, "")
21 svar · 584 visningar · startad av Bosse168
Hur gör man för att göra en Replace så att den tar bort [texten] och [/texten] ur en variabel?
Mera regexp... ;)
Set objRX = New RegExp
objRX.Global = True
objRX.IgnoreCase = True
objRX.Pattern = "\[.*\]"
strTexten = objRX.Replace(strTexten, "")
damn det funkade inte att göra så :(
Det är så att jag försöker göra en citat funktion en sådan som finns här, det som krånglar är att när man gör ett citat på ett citat.
//red
blev knas att skriva ut koden så jag bigogar den i en fil istället.
filen
Hur funkar funktionen här på WF?
Ingen som vet hur man gör för att få citat funktionen att funka?
Du bifogade ju en fil för det. Vad är fel med den?
När man gör ett citat på ett inlägg som redan innehåller ett citat så skriver den ut citatet fel.
Exempel: ([ och citat sitter ihop)
[ citat=bosse][ citat=test]Testar.... 2[/ citat] [/ citat]
Blir i html kod ( [ och citat sitter ihop):
<dIv class="citat"><strong>bosse skrev:</strong><hr><em>[ citat=test]Testar.... 2</em><hr></div> [/ citat]
Det blir ju fel eftersom den tror jag vill avsluta citatet när den första [ /citat] hittas i inlägget.
Någon som vet hur man kan undvika detta fel?
Du kanske kan prova om följande fungerar bättre...
objRegExp.Pattern = "\[citat\](.*)\[/citat\]"
strText = objRegExp.Replace(strText, "<div class=""citat""><hr><em>$1</em><hr></div>")
objRegExp.Pattern = "\[citat=(.*)\](.*)\[/citat\]"
strText = objRegExp.Replace(strText, "<div class=""citat""><strong>$1 skrev:</strong><hr><em>$2</em><hr></div>")
Helt otestat förvisso, men det kanske fungerar ändå ;)
Då ser HTML koden ut så här:
<div class="citat"><strong>bosse][citat=test]Testar.... 2[/citat skrev:</strong><hr><em> </em><hr></div>
Jag märkte det när jag lekte runt litegrann... det finns uppenbarligen ett "riktigare" sätt att skriva mönstret... jag prövade med
objRegExp.Pattern = "\[citat=([^\]]*)\]([^\]]*)\[/citat\"
Det verkar fungera bättre, men inte bra :l
Nåväl... någon häromkring krokarna vet hur det ska se ut. Jag gissar på att herr Juhlin har lite bättre hum om det hela :)
Får detta fel meddelande:
Microsoft VBScript runtime error '800a1399'
Syntax error in regular expression
/incheckasp, line 45
Rad 44 och 45:
objRegExp.Pattern = "\[citat=([^\]]*)\]([^\]]*)\[/citat\"
strText = objRegExp.Replace(strText, "<dIv class=""citat""><strong>$1 skrev:</strong><hr><em>$2</em><hr></div>")
Vissa saker går ju att lista ut om man tittar lite fort... ;)
Jag missade en hakparantes på slutet.
Ahh du har så rätt så ;)
Nu blir det inget fel men blir lite fult vid dubbel citat
HTML koden vid dubbel citat:
[ citat=bosse]<div class="citat"><strong>test skrev:</strong><hr><em>Testar.... 2</em><hr></div> [/citat]
Mm... jag vet faktiskt inte varför det blir knepigt när det blir nästlade taggar, men jag antar att det går att göra ett bättre mönster. Det får dock någon annan stå till tjänst med är jag rädd för.
Ingen som vet hur man kan lösa detta "lilla" problem?
Måste väl finnas någon bland alla dessa genier? ;)
Du skulle kunna göra en liten "rövare" med risk för att det blir kakka om någon glömmer en sluttag
function regx(str)
Set objRX = New RegExp
objRX.Global = True
objRX.IgnoreCase = True
objRX.Pattern = "\[ citat=(.*?)\]"
str = replace(str,"[ /citat]","</em><hr></div>")
str = objRX.Replace(str, "<div class=""citat""><strong>$1 skrev:</strong><hr><em>")
regx=str
set objRX = nothing
end function
Blir fortfarande inte bra när den skriver ut dubbel citat.
Enda skillnaden är att nu så försvinner inte