首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 自動偵測文字內容中的 URL 與 Email 並轉為超連結(RegularExpressions 實作)

     編輯:關於ASP.NET

需求背景

論壇發文常包含網址或 Email,若能自動轉為可點擊超連結將大幅提升使用者體驗。

實作步驟

  1. 引入命名空間:using System.Text.RegularExpressions;
  2. 定義 URL 與 Email 正則運算式:
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);
  1. 使用 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;
}

注意事項

  • 正則運算式需根據實際資料調整(如支援 https、ftp、子域名、特殊字元)。
  • 輸出至 HTML 時需注意 XSS 風險,建議先進行 HTML 編碼再套用連結替換,或使用 HttpUtility.HtmlEncode 處理非連結部分。
  • 原文範例可下載,實際效果請見 https://www.bizsofts.com 論壇。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved