我做了一些搜索,并没有完全弄清楚为什么我的解决方案不起作用。基本上我需要一个字符串(它是 HTML 代码)解析它并查找 mailto 链接(然后我想将其替换为混淆的一部分)。到目前为止,这是我所拥有的:
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\">someperson@domain.com</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));
文本来自 WYSIWYG 文本编辑器(熟悉的 Telrik RadEditor),出于所有意图和目的,我无权控制从中发出的内容。
基本上我需要找到并替换任何:
<a href="mailto:someone%40domain.com">someone@domain.com</a>
和:
<a class="mailme" href="someone@domain.com">someone@domain.com</a>
一些背景知识:我正在尝试创建一个 mailto 链接,以避免被收割机检测到。问题是我收到一个带有电子邮件的字符串作为标准的 mailto 链接。我无法控制传入的字符串,因此 mailto 将始终是未受保护的 mailto。我的目标是找到所有这些,混淆它们,然后使用 JavaScript 来“修复”链接,以便人类访问者可以轻松使用 mailto 链接。我对新方法以及对上述代码的修改持开放态度。