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

.NET

3 svar · 479 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Trådstart#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>";
320 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
187 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
189 ms — ändringar (db)