webForumDet fria alternativet

Punkt och skrot kommer med i länk...

.NET

3 svar · 452 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1

Om jag använder denna funktion och skriver ex. www.sf.se, så kommer kommatecknet med i länken vilket leder till att länken blir fel.
Går det med regexp att undvika detta fenomen?

		
Private Function convertLink(ByVal strText as string) as string
	Dim mDelimit As String
	Dim re As Regex
	mDelimit = Chr(0)
	re = New RegEx("(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)", RegexOptions.IgnoreCase)
	strText = re.Replace(strText, "<a href=""mailto" & mDelimit & ":$1"">$1</a>")
	re = New RegEx("(http://|https://|ftp://|mailto:)(\S)(\S+)", RegexOptions.IgnoreCase)
	strText = re.Replace(strText, "<a href=""$1$2" & mDelimit & "$3"" target=""_blank"">$2" & mDelimit & "$3</a>")
	re = New RegEx("(www\.(\S)(\S+))", RegexOptions.IgnoreCase)
	strText = re.Replace(strText, "<a href=""http://$1"" target=""_blank"">$1</a>")
	strText = Replace(strText, mDelimit, "")
	convertLink=strText
End Function
Medlem sedan apr. 20012 266 inlägg
#2

Följande regexp hittar en url i en text utan att plocka med eventuella komman eller dyl.

(http://|https://|ftp://|mailto:)?[a-zA-Z0-9\-\.]+\.[A-Za-z]+
Medlem sedan okt. 20041 556 inlägg
#3

Ok, fattar bara inte hur jag skall implementera den i koden.
Kodexempel?

Medlem sedan apr. 20012 266 inlägg
#4

Något sådant här, om jag inte klantat mig någonstans:

re = New RegEx("(http://|https://|ftp://|mailto:)?([a-zA-Z0-9\-\.]+\.[A-Za-z]+)", RegexOptions.IgnoreCase)
strText = re.Replace(strText, "<a href=""$1$2"" target=""_blank"">$2</a>";
265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)