webForumDet fria alternativet

Ta bort text i hak paranteser?

ASP

21 svar · 584 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Frågan#1

Hur gör man för att göra en Replace så att den tar bort [texten] och [/texten] ur en variabel?

Medlem sedan dec. 20003 887 inlägg
#2

Mera regexp... ;)

Set objRX = New RegExp

objRX.Global = True
objRX.IgnoreCase = True
objRX.Pattern = "\[.*\]"

strTexten = objRX.Replace(strTexten, "")
Medlem sedan nov. 20031 018 inlägg
#3

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.

Medlem sedan nov. 20031 018 inlägg
#4

filen

Medlem sedan nov. 20031 018 inlägg
#5

Hur funkar funktionen här på WF?

Medlem sedan nov. 20031 018 inlägg
#6

Ingen som vet hur man gör för att få citat funktionen att funka?

Medlem sedan nov. 20017 144 inlägg
#7

Du bifogade ju en fil för det. Vad är fel med den?

Medlem sedan nov. 20031 018 inlägg
#8

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.

Medlem sedan nov. 20031 018 inlägg
#9

Någon som vet hur man kan undvika detta fel?

Medlem sedan dec. 20003 887 inlägg
#10

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å ;)

Medlem sedan nov. 20031 018 inlägg
#11

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>
Medlem sedan dec. 20003 887 inlägg
#12

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 :)

Medlem sedan nov. 20031 018 inlägg
#13

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>")
Medlem sedan dec. 20003 887 inlägg
#14

Vissa saker går ju att lista ut om man tittar lite fort... ;)

Jag missade en hakparantes på slutet.

Medlem sedan nov. 20031 018 inlägg
#15

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]
Medlem sedan dec. 20003 887 inlägg
#16

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.

Medlem sedan nov. 20031 018 inlägg
#17

Ingen som vet hur man kan lösa detta "lilla" problem?
Måste väl finnas någon bland alla dessa genier? ;)

Medlem sedan nov. 20031 018 inlägg
#18

Man borde väl kunna räkna ut i Regexp om det är mer än ett citat i inlägget?
Ingen som kan översätta hur phpBB eller vBulletin gör till ASP?

Medlem sedan nov. 20017 144 inlägg
#19

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
Medlem sedan nov. 20031 018 inlägg
#20

Blir fortfarande inte bra när den skriver ut dubbel citat.
Enda skillnaden är att nu så försvinner inte

252 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)