webForumDet fria alternativet

Blir inte klok på replacefunktionen

1 svar · 262 visningar · startad av timedia

timediaMedlem sedan maj 2001420 inlägg
#1

Har denna kod, men den buggar:

function fixatecken(str)
str = Replace(str, vbCrLf & vbCrLf, "<BR><BR>" & vbCrLf)
str = Replace(str, "<br>", "&nbsp;")

Set objRE = New regexp
objRE.Global = true
objRE.IgnoreCase = true

objRE.Pattern = "(www.[^ ]*[a-z])|(http://[^ ]*[a-z])"
str = objRE.Replace(str,"<a class=""nytt"" href=""$1$2"" target=""_blank"">$1$2</a>")

str = Replace(str,"""www","""http://www")
str = Replace(str,"""http://www""","""www""")

str = Replace(str,"<br""","""")
str = Replace(str,"<br</a> />","</a><br />")

Set objRE = Nothing
fixatecken = str
'********************************
End function

Nu blir länkarna konstiga t.ex blir även ordet "Men" en del av länken:

**Länken är här

Men** även första ordet här blir länk

Hur göra?

timediaMedlem sedan maj 2001420 inlägg
#2

Löste det:

Function convertLink(ByVal strText)
Dim mDelimit
Dim re
mDelimit = Chr(0)
Set re = New RegExp
re.Global = True
re.IgnoreCase = true

re.pattern = "\[url=([^]]+)](.+?)\[/url]"
strText = re.replace(strText, "<a href=""$1"">$2</a>")

re.Pattern = "(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)"
strText = re.Replace(strText, "<a class='nytt' href=""mailto" & mDelimit & ":$1"">$1</a>")

re.Pattern = "(^|\s)(http://|https://|ftp://|mailto:)(\S)(\S+)"
strText = re.Replace(strText, "$1<a class='nytt' href=""$2$3" & mDelimit & "$4"" target=""_blank"">$3" & mDelimit & "$4</a>")

re.Pattern = "(^|\s)(www\.(\S)(\S+))"
strText = re.Replace(strText, "$1<a class='nytt' href=""http://$2"" target=""_blank"">$2</a>")
strText = Replace(strText, mDelimit, "")
strText = Replace(Trim(strText),vbCrLf, "<br>")
convertLink=strText

End Function
130 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)