Den fjärde ersättningen förstör de tre första, eftersom den ersätter länkar.
Har problem med en RegExp kod, om jag postar http://www.webforum.nu genom ett forumlär så skrivs det ut rätt.
Men om jag däremot skriver tex "http://www.webforum.nu sdsdsd http://www.webforum.nu" (utan ") så skrivs detta ut:
www.webforum.nu ...[url]www.webforum.nu[/url]
och det vill jag ju inte. Nu undrar jag alltså vad som är fel, eller snarare vad mer är fel på detta? :D
Function Formatera(ByVal strText, ByVal lMaxLength)
Dim objRegExp 'as object
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
strText = Server.HTMLEncode(strText)
objRegExp.Pattern = "(http://|https://|ftp://)(\S)(\S+)"
strText = objRegExp.Replace(strText, "<a href=""$1$2$3"" target=""_blank"">$2$3</a>")
objRegExp.Pattern = "(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)"
strText= objRegExp.Replace(strText, "<a href=""mailto:$1"">$1</a>")
objRegExp.Pattern = "\[URL=(.*?)\]((.|\s)*?)\[\/URL\]"
strText = objRegExp.Replace(strText,"<a href=""$1"" TARGET=""_blank"">$2</a>")
objRegExp.Pattern = "(<a[^>]+>)([\s\S]{20}?)([\s\S]+?)([\s\S]{15}?)(</a>)"
strText = objRegExp.Replace(strText, "$1$2...$4$5")
objRegExp.Pattern = "\[B\]((.|\s)*?)\[/B\]"
strText = objRegExp.Replace(strText,"<B>$1</B>")
objRegExp.Pattern = "\[I\]((.|\s)*?)\[/I\]"
strText = objRegExp.Replace(strText,"<I>$1</I>")
objRegExp.Pattern = "\[U\]((.|\s)*?)\[/U\]"
strText = objRegExp.Replace(strText,"<U>$1</U>")
objRegExp.Pattern = "\[RUBRIK\]((.|\s)*?)\[/RUBRIK\]"
strText = objRegExp.Replace(strText,"<font size=""2""><strong><u>$1</u></strong></font>")
objRegExp.Pattern = "(\S{" & lMaxLength & "})"
strText = objRegExp.Replace(strText, "$1 ")
strText = Replace(strText, vbcrlf, "<BR>" & vbcrlf)
Formatera=strText
End Function
Och jag skriver ut det såhär (,60 är till för att bryta långa ord, kan det ha något med det att göra?):
strText = Request.Form("Text")
strText = Formatera(strText,60)
response.Write ""&strText&""