我做了一些搜索,並沒有完全弄清楚爲什麼我的解決方案無法正常工作。基本上我需要一個字符串(這是HTML代碼)解析它並查找mailto鏈接(然後我想要替換爲混淆的一部分)。以下是我迄今:在C#中匹配URL編碼的電子郵件地址#
string text = "<p>Some Person<br /> Person's Position<br />p. 123-456-7890<br /> e. <a title=\"Email Some Person\" target=\"_blank\" href=\"mailto:someperson%40domain.com\">[email protected]</a></p>";
text = Server.UrlDecode(text);
string safeEmails = Regex.Replace(text, "(<a href=\"mailto:)(.*?)(%40)(.*?)(\">)(.*?)(</a>)", "<a class=\"mailme\" href=\"$2*$4\">$6</a>");
Response.Write(Server.HtmlDecode(safeEmails));
的文本出來一個所見即所得的文本編輯器(Telrik RadEditor對於熟悉)和用於所有意圖和目的,我沒有獲得能夠控制什麼正在走出來。
基本上我需要找到並更換:
<a href="mailto:someone%40domain.com">[email protected]</a>
有了:
<a class="mailme" href="[email protected]">[email protected]</a>
一些背景:我試圖創建一個mailto鏈接,將避免收割機檢測。問題是我收到一封帶有電子郵件的字符串作爲標準的mailto鏈接。我無法控制傳入的字符串,所以mailto將始終是未受保護的mailto。我的目標是找到它們,混淆它們,然後使用JavaScript來「修復」鏈接,以便人類訪問者可以輕鬆使用mailto鏈接。我接受新方法以及修改上述代碼。
提醒我一首歌。你可以做的任何事情都可以做得更好。那是那個嗎?請記住,您的資源有限。收割機傾向於無限的資源。 – btlog 2011-03-25 20:39:06
電子郵件劫機者不僅限於在您的hrefs中尋找_mailto:_前綴... – canon 2011-03-25 20:39:39
你們兩個都有非常有效的要點,但他們都不能幫助我。我試圖混淆mailto,因爲那是我能找的唯一的東西。真正的問題是,我似乎無法讓.Net找到與其中的URL編碼電子郵件匹配。 – jkinz 2011-03-27 15:12:07