Frågan#1 objRegExp.Pattern = "\[(kod)\](.*?)\[\/(kod)\]"
mess = objRegExp.Replace(mess,"<blockquote><font style=""font-size: 9px"">Kod:</font><hr class=""mess4"" size=""1""><font class=""time"">$2</font></font><hr class=""mess4"" size=""1""></blockquote>")
objRegExp.Pattern = vbCrLf & vbCrLf
mess = objRegExp.Replace(mess,"<br>")
koden fungera om jag skriver [.kod]test[./kod] på en rak linje men om jag skriver:
[.kod]
TEst
[./kod]
så blir det helt fel...
SselstamMedlem sedan aug. 20009 inlägg Byt ut (.*?) mot (\S+) istället ... det borde fungera.
Jag kör i mitt eget forum följande kod:
Function urlTag(strIn, strType)
Dim re, strOut
Set re = New RegExp
If strType = "tohtml" Then
re.Pattern = "\[url\](\S+)\[/url\]"
re.IgnoreCase = True
re.Global = True
strOut = re.Replace(strIn, "<a target=" & Chr(34) & "_blank" & Chr(34) & " href=" & Chr(34) & "$1" & Chr(34) & ">$1</a>")
Else
re.Pattern = "<a target=" & Chr(34) & "_blank" & Chr(34) & " href=" & Chr(34) & "(\S+)" & Chr(34) & "(\S+)</a>"
re.IgnoreCase = True
re.Global = True
strOut = re.Replace(strIn, "[url]$1[/url]")
End If
Set re = Nothing
urlTag = strOut
End Function
--
Andreas Selstam, dvdforum.nu
nope.. fungerade inte ...
BrimbaMedlem sedan dec. 19995 874 inläggVarför har du kod inom paranteser?
Ta bort dessa och anropa $1 istället.
har gjort det nu :) men det hjälper inte för det :)
SselstamMedlem sedan aug. 20009 inlägg Har du uppdaterat till senaste versionen av VBScript? 5.5 är den senaste (har jag för mig) och just regexp i tidigare versioner var otroligt buggigt.
Vilken version du kör kollar du lätt genom:
<%=ScriptEngine%><BR>
<%=ScriptEngineMajorVersion%><BR>
<%=ScriptEngineMinorVersion%><BR>
SsolbulleMedlem sedan mars 20015 287 inlägg Helt OT, men måste bara passa på att välkomna Andreas Selstam till WF. :)
(fr en gammal dvdforumräv)
ingen som kan kanske veta???
SselstamMedlem sedan aug. 20009 inlägg Tja, koden som jag skrev vet jag fungerar (den används ofta) ... :)
Det jag funderar på är om det finns några andra inställningsmöjligheter som kan vara påverkande, men det tror jag inte.
<%
Function encode(mess)
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
mess = Server.HTMLEncode(mess)
objRegExp.Pattern = "\[email=(")?(.*?)@(.*?)\1\](.*?)\[\/email\]"
mess = objRegExp.Replace(mess,"<a href=mailto:$2@$3 target=""_blank"">$4</a>")
objRegExp.Pattern = "\[email\](.*?)@(.*?)\[\/email\]"
mess = objRegExp.Replace(mess,"<a href=mailto:$1@$2 target=""_blank"">$1@$2</a>")
objRegExp.Pattern = "\[url=(")?([url]http://[/url])?(.*?)\1\](.*?)\[\/url\]"
mess = objRegExp.Replace(mess,"<a href=http://$3 target=""_blank"">$4</a>")
objRegExp.Pattern = "\[url\]([url]http://[/url])?(.*?)\1\[\/url\]"
mess = objRegExp.Replace(mess,"<a href=http://$2 target=""_blank"">$2</a>")
objRegExp.Pattern = "\[kod\](\S+)\[/kod\]"
mess = objRegExp.Replace(mess,"<blockquote><font style=""font-size: 9px"">Kod:</font><hr class=""mess4"" size=""1""><font class=""time"">$1</font></font><hr class=""mess4"" size=""1""></blockquote>")
objRegExp.Pattern = "\[color=(.*?)\](.*?)\[/color\]"
mess = objRegExp.Replace(mess,"<font color=$1>$2</font>")
objRegExp.Pattern = "\[(b|/b|i|/i|u|/u)\]"
mess = objRegExp.Replace(mess,"<$1>")
objRegExp.Pattern = vbTab
mess = objRegExp.Replace(mess," ")
objRegExp.Pattern = vbCrLf
mess = objRegExp.Replace(mess,"<br>" & vbcrlf)
objRegExp.Pattern = "\[citat\](.*?)\1\[\/citat\]"
mess = objRegExp.Replace(mess,"<blockquote><B style=""font-size: 9px"">Citat: </b><hr class=""mess4"" size=""1""><I>$1</I><hr class=""mess4"" size=""1""></blockquote>")
objRegExp.Pattern = "\[citat=(\S+)\](\S+)\[\/citat\]"
mess = objRegExp.Replace(mess,"<blockquote><B style=""font-size: 9px"">$1</b> <font style=""font-size: 9px"">skrev: </font><hr class=""mess4"" size=""1""><I>$2</I><hr class=""mess4"" size=""1""></blockquote>")
objRegExp.Pattern = "\[list\](.*?)\[\/list\]"
mess = objRegExp.Replace(mess,"<ul>$1</ul>")
objRegExp.Pattern = "\[list(=1|=a)\](.*?)\[\/list\]"
mess = objRegExp.Replace(mess,"<ol type$1>$2</ol>")
objRegExp.Pattern = ""(\S+)""
mess = objRegExp.Replace(mess,"“$2”")
objRegExp.Pattern = "\[\*\](.*?)"
mess = objRegExp.Replace(mess,"<li>$1</LI>")
objRegExp.Pattern = vbCrLf & vbCRLf
mess = objRegExp.Replace(mess,"<br>"& vbCrLf)
mess = Replace(mess, "'", "''")
encode = mess
End Function
%>
om du vill kolla lite extra på alla mina koder?
du.. jag ändrade till:
(.|\n)+?
nu fattar den att
[.kod]
test
[./kod]
finns... men den skriver inte ut $1 då, som om $1 aldrig finns.. :(
det borde ju fungera.. eller hur?
fixat det:
((.|\n)+?)
så fungera allt..