Hej. Per, Tack, Johan Jag använder den här funktionen Hej, Där du skriver ut datan Tack för hjälpen! skapa en funtion tillFormatera till hyperlänk från access-fält
Håller på med ett forum där användarna skall kunna skriva länkar direkt i bodyn på meddelandena.
Dvs, om de gör ett inlägg där de skrivit tex. http://www.minsida.com så skall denna adress bli formaterad till en klickbar länk när den hämtas ur access-fältet. Hur skall jag åstadkomma detta? Användaran kan inte html, så att de själva skall skriva html-taggar i meddelandet är inte ett alternativ.
Tack på förhand!
//PerSv: Formatera till hyperlänk från access-fält
Du kan använda dig av regularexpression där du latar upp allt som skrivs.
Http://något.något eller www.något.något och ersätta dessa med link data.
Mvh JohanSv:Formatera till hyperlänk från access-fält
Jag är dock nybörjare...kan du förklara lite mer.
Tror jag är med lite på hur du menar men skulle
behöva lite mer info
//PerSv: Formatera till hyperlänk från access-fält
<code>
Public Shared Function makelink(ByVal y 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)
y = re.Replace(y, "$1")
re = New Regex("(http://|https://|ftp://|mailto:)(\S)(\S+)", RegexOptions.IgnoreCase)
y = re.Replace(y, "$2" & mDelimit & "$3")
re = New Regex("(www\.(\S)(\S+))", RegexOptions.IgnoreCase)
y = re.Replace(y, "$1")
makelink = Replace(y, mDelimit, "")
End Function
</code>
Den gör om allt som börjar med www eller http till länkar och den fixar även mailadresserSv:Formatera till hyperlänk från access-fält
Se ut som precis det jag är ute efter, har dock problem
med att funktionen ignoreras när sidan körs och jag får inget felmeddelande.
Måst jag anropa den någonstans eller vad kan felet vara.
//PerSv: Formatera till hyperlänk från access-fält
<code>
<%# makelink(DataBinder.Eval(Container.DataItem,"ditt fält")) %>
</code>
och codebehind
<code>
Protected Function makelink(ByVal y 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)
y = re.Replace(y, "$1")
re = New Regex("(http://|https://|ftp://|mailto:)(\S)(\S+)", RegexOptions.IgnoreCase)
y = re.Replace(y, "$2" & mDelimit & "$3")
re = New Regex("(www\.(\S)(\S+))", RegexOptions.IgnoreCase)
y = re.Replace(y, "$1")
makelink = Replace(y, mDelimit, "")
End Function
</code>Sv:Formatera till hyperlänk från access-fält
Det funkar fint, nu måste jag bara komma på ett sätt
att få med radbrytningarna i samma formatering.
//PerSv: Formatera till hyperlänk från access-fält
<code>
protected Function radbryt(ByVal text As String) as string
Dim vbcrlf As String = System.Environment.NewLine
return Replace(text, vbcrlf, "<br />")
End Function
</code>
och sen när du skriver ut
<code>
<%# radbryt(makelink(DataBinder.Eval(Container.DataItem,"ditt fält"))) %>
</code>