我有一个输入字符串,必须从HTML代码中去除,所以我使用默认的.Net函数.HtmlEncode()来转义所有危险字符。HTML编码和URL
现在我试图通过正则表达式将输入字符串中的URL替换为HREF锚点。
问题是,当我在调用.HtmlEncode()之前'链接'URL时,锚标记会丢失,这是合乎逻辑的。但是当我在调用.HtmlEncode()之后进行链接时,某些url的格式不正确,因为它们包含危险字符?
这似乎是鸡鸡蛋的问题,应该怎么解决呢?
实施例:
输入字符串:
See http://example.com/q=1&x=2
预期结果:
See <a href="http://example.com/q=1&x=2">http://example.com/q=1&x=2</a>
做的HTMLEncode第一,呼吁Linkify后:
See <a href="http://example.com/q=1&x=2">http://example.com/q=1&x=2</a>
做Linkify第一,呼吁的HTMLEncode后:
See <a href="http://example.com/q=1&x=2">http://example.com/q=1&x=2</a>
我目前使用的解决方案是在所有地方调用.HtmlDecode()由正则表达式(linkify)发现的ches,但它不是100%万无一失的,因为一个有效的URL理论上可以包含像&
这样的模式,它将被解码,但不应该。
也许包含一个简单的例子?目前尚不清楚链接过程究竟需要什么。 – mikey
@mikey我加了一个 – Muis
什么是“linkify”正则表达式工具? –