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?
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&""