KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Is there a better way to format text from Twitter to link the hyperlinks, username and hashtags? What I have is working but I know this could be done better. I am interested in alternative techniques. I am setting this up as a HTML Helper for ASP.NET MVC. using System; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Web; using System.Web.Mvc; namespace Acme.Mvc.Extensions { public static class MvcExtensions { const string ScreenNamePattern = @"@([A-Za-z0-9\-_&;]+)"; const string HashTagPattern = @"#([A-Za-z0-9\-_&;]+)"; const string HyperLinkPattern = @"(http://\S+)\s?"; public static string TweetText(this HtmlHelper helper, string text) { return FormatTweetText(text); } public static string FormatTweetText(string text) { string result = text; if (result.Contains("http://")) { var links = new List<string>(); foreach (Match match in Regex.Matches(result, HyperLinkPattern)) { var url = match.Groups[1].Value; if (!links.Contains(url)) { links.Add(url); result = result.Replace(url, String.Format("<a href=\"{0}\">{0}</a>", url)); } } } if (result.Contains("@")) { var names = new List<string>(); foreach (Match match in Regex.Matches(result, ScreenNamePattern)) { var screenName = match.Groups[1].Value; if (!names.Contains(screenName)) { names.Add(screenName); result = result.Replace("@" + screenName, String.Format("<a href=\"http://twitter.com/{0}\">@{0}
Tags (comma-separated)
Save Edits
Cancel