論壇發文常包含網址或 Email,若能自動轉為可點擊超連結將大幅提升使用者體驗。
using System.Text.RegularExpressions;Regex urlRegex = new Regex(@"(http:\/\/([\w.]+\/?)\S*)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
Regex emailRegex = new Regex(@"([a-zA-Z_0-9.-]+@[a-zA-Z_0-9.-]+\.\w+)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
Replace 方法套用超連結標籤:string content = InputTextBox.Text;
content = urlRegex.Replace(content, "<a href=\"$0\" target=\"_blank\">$0</a>");
content = emailRegex.Replace(content, "<a href=\"mailto:$0\">$0</a>");
lbContent.Text += "<br>" + content;
private void Button1_Click(object sender, EventArgs e)
{
string strContent = InputTextBox.Text;
Regex urlregex = new Regex(@"(http:\/\/([\w.]+\/?)\S*)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
strContent = urlregex.Replace(strContent, "<a href=\"$0\" target=\"_blank\">$0</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:$0\">$0</a>");
lbContent.Text += "<br>" + strContent;
}
HttpUtility.HtmlEncode 處理非連結部分。