Automatically Hyperlink URLs and E-Mail Addresses in ASP.NET Pages with C#

Introduction

This article introduces how to hyperlink URLs and e-mail addresses in ASP.NET pages with C#, When you design a forum or other Web site, the code is very useful.

Background

After I designed the Web site http://www.outsourcexp.com, I found that many users post URL and e-mail information, but these URLs and e-mails just display as text. If you want to visit these URLs or e-mail addressess, you have to copy them and then paste them to your browser or e-mail client. I searched articles about automatically hyperlinking URLs, but only found VB source code. So, I decided do it myself.

Using the Code

The first step is how to detect URLs and e-mail addresses. Of course, the best way is with regular expressions. By using regular expressions, you can automatically detect hyperlink-sensitive text and automatically wrap it into elements pointing to the same URL. Here's how to proceed. The idea is to preprocess any displayable text using ad hoc regular expressions to identify portions of text that are e-mail addresses or Web site URLs. You create a RegEx object and initialize it with the regular expression. Next, you call IsMatch on the input string to see whether at least one match is found. Next, you call the Replace method. Replace takes the input as its first argument.

First, when you use regular expressions, you must include System.Text.RegularExpressions:

using System.Text.RegularExpressions;

The second step is to detect a URL:

Regex urlregex = new Regex(@"(http:\/\/([\w.]+\/?)\S*)",
   RegexOptions.IgnoreCase|RegexOptions.Compiled);

Here is how to detect an e-mail address:

Regex emailregex = new Regex(@"([a-zA-Z_0-9.-]+\@[a-zA-Z_0-9.-]+\.\w+)",
   RegexOptions.IgnoreCase|RegexOptions.Compiled);

When you detect a URL or e-mail address, you need to replace it with <a href=...></a>. I put all these into a function.

private void Button1_Click(object sender, System.EventArgs e)
{
   string strContent = InputTextBox.Text;
   Regex urlregex = new Regex(@"(http:\/\/([\w.]+\/?)\S*)",
                    RegexOptions.IgnoreCase| RegexOptions.Compiled);
   strContent = urlregex.Replace(strContent, 
                "<a href=\"$1\" target=\"_blank\">$1</a>");
   Regex emailregex = new Regex(@"([a-zA-Z_0-9.-]+\@[a-zA-Z_0-9.-]+\.\w+)",
      RegexOptions.IgnoreCase| RegexOptions.Compiled);
   strContent = emailregex.Replace(strContent, "<a href=mailto:$1>$1</a>");
   lbContent.Text += "<br>"+strContent;
}

Here you go. Build this control library, add references to your project, and enjoy validating.



About the Author

Roland Luo

I am a programmer who work for Offshore Outsourcing Inc. as well as run my own website, Outsourcing Software Development , which is a good place for freelancing activities,this website help people outsource software development to India,China or other countries, find freelance programmers and web designers all over the world. Started out doing Classic ASP, and moved on from there. My skillset now encompasses ASP, ASP.NET / C#, C++, VC++, MFC, SQL Server.

Downloads

Comments

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • On-demand Event Event Date: May 18, 2015 While the idea of using facial and/or gesture recognition to create a modern, intuitive game seems attractive, some developers may want to leverage Unity 3D as a way to accelerate their development efforts. There are many different ways in which Intel and Unity Technologies have been working together to help speed the development of games with the Intel&reag; RealSense™ SDK (software developer kit). Check out this webcast to join a panel of experts as they …

  • Is your compliance strategy relying on disconnected processes and tools that leave your organization at risk? Do your security and operations teams run into conflicts--leading to a gap between audit and remediation? Now you can make even the most complex and dynamic IT infrastructure fully secure and compliant. Read this eBook and learn how to: Improve process and close the SecOps gap Quickly detect, audit and remediate breaches Create a more agile environment to comply to regulatory mandates Better …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date