Alltså jag har redan en drös med regexp - koder (som helt säkert hade kunnat effektiviseras rätt hårt.
Function bbCode(Str)
Set objRE = New RegExp
objRE.Global = True
objRE.IgnoreCase = True
objRE.Pattern="\[b\]([\w\W]*?)\[/b\]"
Str = objRE.Replace(Str,"<strong>$1</strong>")
Set objRE = Nothing
Set objRE = New RegExp
objRE.Global = True
objRE.IgnoreCase = True
objRE.Pattern="\[i\]([\w\W]*?)\[/i\]"
Str = objRE.Replace(Str,"<em>$1</em>")
Set objRE = Nothing
Set objRE = New RegExp
objRE.Global = True
objRE.IgnoreCase = True
objRE.Pattern="\[s\]([\w\W]*?)\[/s\]"
Str = objRE.Replace(Str,"<span style=""text-decoration: line-through;"">$1</span>")
Set objRE = Nothing
Set objRE = New RegExp
objRE.Global = True
objRE.IgnoreCase = True
objRE.Pattern="\[mailto\]([\w\W]*?)\[/mailto\]"
Str = objRE.Replace(Str,"<a href=""mailto:$1"">$1</a>")
Set objRE = Nothing
Set objRE = New RegExp
objRE.Global = True
objRE.IgnoreCase = True
objRE.Pattern="\[url\]([\w\W]*?)\[/url\]"
Str = objRE.Replace(Str,"<a href=""http://$1"">$1</a>")
Set objRE = Nothing
Set objRE = New RegExp
objRE.Global = True
objRE.IgnoreCase = True
objRE.Pattern="\[img\]([\w\W]*?)\[/img\]"
IF left(lCase("&$1&"),7) = "http://" Then
Str = objRE.Replace(Str,"<a href=""$1""><img src=""$1"" border=""0"" alt=""inlänkad bild"" /></a>")
Else
Str = objRE.Replace(Str,"<a href=""http://$1""><img src=""http://$1"" border=""0"" alt=""inlänkad bild"" /></a>")
End IF
Set objRE = Nothing
bbCode = Str
End Function
Men det är inte det som är problemet. Problemet ligger i att knasar till mina länkar. För visst borde man kunna skriva www.någonstans.se och http://www.någonstans.se och få samma output på länken?
I nuläget så fungerar det egentligen bara att skriva www.någonstans.se för när man använder http:// framför så ger den följande output: http://http//www.någonstans.se och det är ju otrevligt
Set objRE = New RegExp
objRE.Global = True
objRE.IgnoreCase = True
objRE.Pattern="\[url\]([\w\W]*?)\[/url\]"
Str = objRE.Replace(Str,"<a href=""http://$1"">$1</a>")
Set objRE = Nothing
Jag testade med ifsatser i men det verkade inte som det ville fungera speciellt det heller.
Set objRE = New RegExp
objRE.Global = True
objRE.IgnoreCase = True
objRE.Pattern="\[url\]([\w\W]*?)\[/url\]"
IF left(lCase("$1"),13) = "http://" Then
Str = objRE.Replace(Str,"<a href=""$1"">$1</a>")
Else
Str = objRE.Replace(Str,"<a href=""http://$1"">$1</a>")
End IF
Set objRE = Nothing
varför kör du den i huvudtaget?
varför jag byter ut det mot uttrycket är för att då skall den ta alla tecken som INTE är] vilket är korrekt i ditt fall.
Dim subjectString
SubjectString = "[url=http://www.adress.se/forum_thread.asp?fId=19&tId=612]Forumet[/url]"
Dim myRegExp, ResultString
Set myRegExp = New RegExp
myRegExp.IgnoreCase = True
myRegExp.MultiLine = True
myRegExp.Global = True
myRegExp.Pattern = "\[url=([\w\W]*?)\](.*?)\[/url\]"
ResultString = myRegExp.Replace(SubjectString, "<a href=""$1"">$2</a>")
Jo, denna kodsnutt fungerar utan några som helst problem för min del med, men det är ([\]]+) som inte fungerar för min del. Den hoppar bara över länken med den (eller BBCode emulationen om man nu vill det) då jag använder den vilket fick mig att gå tillbaka till ([\w\W]*?)\.
Edit: Åhhh! Naturligtvis, vad dum jag är. Dumt formulerat problem resulterar ju naturligtvis i felaktigt svar oavsett hur riktigt svaret må vara! Haha, mycket tack ska du ha ändå eftersom du ändå löste mitt problem :birp
262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25