Dzisiaj prosty przykład jak w tekście zamienić url na link, czyli np. użytkownik wpisuje:
“Zapraszam na moją stronę http://gasior.net.pl”
a my wyświetlając ten tekst chcemy otrzymać coś takiego
“Zapraszam na moją stronę <a href=”http://gasior.net.pl”>http://gasior.net.pl</a>”
Z pomocą przychodzą wyrażenia regularne:
[sourcecode language=”csharp”]
protected string ConvertUrlsToLinks(string msg)
{
Regex r = new Regex("(http://[^ ]+)");
return r.Replace(msg, "<a href="$1">$1</a>");
}
[/sourcecode]
Jeżeli zachodzi taka potrzeba możemy ten sam efekt uzyskać w JavaScripcie:
[sourcecode language=”csharp”]
var objRegExp = /(http:[^ ]+)/g;
var convertedValue = msg.replace(objRegExp, "<a href=’$1′>$1</a>");
[/sourcecode] EDIT:
w nawiązaniu do słusznej uwagi z komentarza (użytkownik apl) podaję poprawioną, dokładniejszą metodę:
[sourcecode language=”csharp”]
var reg = @"((www.|(http|https)+://)[_.a-z0-9-]+.[a-z0-9/_:@=.+?,##%&~-]*[^.|’|# |!|(|?|,| |>|<|;|)])";
Regex r = new Regex(reg, RegexOptions.IgnoreCase);
return r.Replace(msg, "<a href="$1">$1</a>").Replace("href="www", "href="http://www");
[/sourcecode]
Quick Tip: 06. zamieniamy URL na link
Share