【发布时间】:2013-05-02 20:16:56
【问题描述】:
我的问题和这个问题类似:
How to mimic StackOverflow Auto-Link Behavior
但是,此解决方案不适用于可能已经包含链接的混合内容 - 任何已经在 A 标签 <a href="http://stackoverflow.com">My Link</a> 内的 URL 都将被修改为 <a href="<a href="http://stackoverflow.com">stackoverflow.com</a>">My Link</a>
这是所需的行为:
之前
https://stackoverflow.com/ is a wonderful URL.
<a href="https://stackoverflow.com/">Has already been linked.</a>
之后
<a href="https://stackoverflow.com/">https://stackoverflow.com/</a> is a wonderful URL.
<a href="https://stackoverflow.com/">Has already been linked.</a>
【问题讨论】:
-
找到看起来像 url 的文本,然后展开代码以查找包含它的 html 标签。例如如果你在某处有
http://,那么在你启动实际的包装逻辑之前检查它实际上不是<a href="http://。 -
我认为可能值得先解析 HTML 的文本块,然后扫描文本节点以查找链接,因此您也可以避免嵌套链接,例如
<a href="http://www.example.com">http://www.example.com</a>到 @987654329 @