webForumDet fria alternativet

Länkar utsrivet även med www

ASP

2 svar · 282 visningar · startad av Sammy

Medlem sedan maj 2000202 inlägg
Frågan#1

Jag undrar hur jag med denna kod får automatiska länkar utskrivna även med www. I Med nuvarande kod blir det enbart en länk om man skriver http://www.xxx.xx som webbsida men eftersom många (som jag) ofta bara skriver https://www.xxx.xx skulle jag vilja att även detta automatiskt blir en länk.

Hoppas ni förstår vad jag menar?

Function make_link(txt)

	' Initiering i början
	txt = Replace(server.HTMLEncode(txt),vbCrlf,"<br>")
	sPos		= inStr(lCase(txt),"http://")	' Hämtar positionen för första länken

	' Fyll denna array med tecken som avslutar en länk << HÄR KAN DU ÄNDRA OM DU VILL >>
	stoppa		= Array(";",","," ","!","<",">")

	Do While sPos <> 0 AND sPos < len(txt)
		
		' Initiering av grejer i lopen
		startLink = sPos			' Länkens startpos
		tmpChar	  = ""				' Nollställ
		tmpLink	  = ""				' Nollställ
		stop_it	  = "FALSE"

		' Plocka ut namnet på länken
		Do Until sPos > len(txt)+1 OR stop_it = "TRUE"
			tmpLink = tmpLink & tmpChar
			tmpChar = Mid(txt,sPos,1)
			endLink = sPos - 1
			sPos = sPos + 1
			For X = 0 To Ubound(stoppa)	' Kollar om tmpChar är ogiltig
				If tmpChar = stoppa(X) Then stop_it = "TRUE"
			Next
		Loop

		vanster = Left(txt,startLink-1)		' Texten till vänster om länken
		hoger	= Right(txt,len(txt)-endLink)	' Texten till höger om länken
		
		' Sätt ihop den nya texten, med länk!
		txt 	=  vanster & "<a href='" & tmpLink & "' target = '_blank'>"_
			& tmpLink & "</a>" & hoger

		' Leta fram nästa länk
		jumpTo 	= endLink + 33 + len(tmpLink)
		sPos	= inStr(jumpTo,lCase(txt),"http://")

	Loop

	' Tillåten HTML kod
	txt = Replace(txt,"[c]","<font color='red'>")
	txt = Replace(txt,"[/c]","</font>")
	txt = Replace(txt,"[b]","<b>")
	txt = Replace(txt,"[/b]","</b>")
	txt = Replace(txt,"[i]","<i>")
	txt = Replace(txt,"[/i]","</i>")

	make_link = txt

End Function
Medlem sedan aug. 2002207 inlägg
#2

Jag tror att du skulle kunna ta en titt på Regular Expressions istället. Mycket enklare att göra det med det.

Medlem sedan sep. 2002366 inlägg
#3

strText = txt
Set re = New RegExp
re.IgnoreCase = true

    re.Pattern = "(<http://>\|<https://>\|ftp://)(\\S+)"
    strText = re.Replace(strText, "\<a href=""$1$2"" TARGET=""\_blank""\>\<b\>$2\</b\>\</a\>")

    re.Pattern = "\[^(<http://>)(\\S)\](www\\.(\\S+))"
    strText = re.Replace(strText, " \<a href=""http://$1"" TARGET=""\_blank""\>\<b\>$1\</b\>\</a\>")

Detta ska nog funka hyfsat tror jag..

-Eitraz

251 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)