Łukasz Gąsior
  • Home
  • now!
  • Blog
  • Po polsku
Social Links
Twitter
LinkedIn
Facebook
YouTube
Reddit
Instagram
GitHub
Medium
RSS
Łukasz Gąsior
  • Home
  • now!
  • Blog
  • Po polsku
  • Po polsku

Quick Tip: 06. zamieniamy URL na link

  • 2009-12-04
  • 3 komentarze
  • 1 minute read
  • 71 views

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)+://)[&#95;.a-z0-9-]+.[a-z0-9/&#95;:@=.+?,##%&~-]*[^.|’|# |!|(|?|,| |>|<|;|)])";
Regex r = new Regex(reg, RegexOptions.IgnoreCase);
return r.Replace(msg, "<a href="$1">$1</a>").Replace("href="www", "href="http://www");
[/sourcecode]

Share
Tweet
Share
Share
Related Topics
  • regex
  • url
You May Also Like
View Post
  • Po polsku

Software Craftsmanship Wrocław

  • 2017-06-06
View Post
  • Po polsku

Pilnuj typów danych

  • 2014-02-26
View Post
  • Po polsku

ReSharper Essentials – poszło!

  • 2014-02-21
View Post
  • Po polsku

Turbo-Mode Developera

  • 2014-02-19
View Post
  • Po polsku

Badanie usability by TechSmith

  • 2014-02-13
View Post
  • Po polsku

Global Windows Azure Bootcamp 2014

  • 2014-02-05
View Post
  • Po polsku

Quick tip: 12. Stosuj AsNoTracking() gdzie się da!

  • 2013-01-27
View Post
  • Po polsku

Quick tip: 11. Indexed views vs. SQL Server Express

  • 2012-07-23
3 comments
  1. apl pisze:
    2009-12-07 o 17:25

    Jak na pierwsze podejście OK, ale na dłuższą metę takie rozwiązanie nie będzie wystarczające. Co w takich przypadkach:
    1. „Przejdź na stronę http://pajacyk.pl, a następnie kliknij brzuszek pajacyka.”
    2. „Otrzymuję komunikat o treści “Nie można odnaleźć hosta http://example.com” i nie wiem co z tym zrobić.”
    3. „Adres hosta nie powinien zaczynać się od przedrostka http://, usuń go i będzie OK.”

  2. Łukasz Gąsior pisze:
    2009-12-08 o 23:11

    @apl – miał to być jedynie prosty przykład jak taki “problem” można rozwiązać ale uwaga jak najbardziej słuszna. Problemem jest to, że url kończy się przecinkiem i jest on dodawany jako element linku – podana metoda zakłada, że url kończy się spacją.
    Dodałem bardziej rozbudowaną metodę – ta już radzi sobie z podanym przez Ciebie przykładem.

  3. fazi pisze:
    2010-02-25 o 16:30

    Przydatne 🙂
    1) poprawiony wyrażeniu brakuje dwa razy A-Z po a-z dla parametrów np z get=BlaBla
    2) (http|https) – można skrócić do (https?)

Comments are closed.

click & help!
Nakarm dziecko!
Follow me
RESHARPER ESSENTIALS
ReSharper Essentials
CODINGTV();
codingtv();
Twitter Feed
Categories
  • Azure Cloud (6)
  • Po polsku (104)
  • Windows (1)
Featured Posts
  • Azure Activity Log – Change History
    • 2020-09-29
  • Diagram Driven Cloud Infrastructure with Cloud Maker
    • 2020-09-22
  • Azure ARM template, but it is not JSON!
    • 2020-09-15
About
👍 Cloud | DevOps | Development | Technical Leadership | 📗Author of "ReSharper Essentials
© 2019 Łukasz Gąsior. All rights reserved.
hosted with ♥️ on webio | Polityka prywatności

Input your search keywords and press Enter.