我在使用 javascript 正则表达式将 url 链接到可点击链接时遇到了一个奇怪的问题。
在 so.com 上进行了大量挖掘之后,我开始使用jmrware/LinkifyURL.js将 url 转换为可点击的链接。但是当尝试在没有架构的情况下转换 url ((htt|ft)ps) 时,它根本无法识别 url。
例子:
http://www.google.com(接受)
www.google.com(不接受)
google.com(不接受)。
那里的任何人都可以帮我找出解决方案。
编辑:在我的场景中,我必须在用户可以输入任何 url 的文本区域中接受用户的输入。在网站上显示时,我必须链接在用户输入中找到的任何 url。
这是我试图链接的测试内容。
> http://example.com:80 (linkified)<br/>
> http://example.com:80/path/ (linkified)<br/>
> http://example.com:80/path/file.txt (linkified)<br/>
> http://example.com:80/path/file.txt?query=val&var2=val2 (linkified)<br/>
> http://example.com:80/path/file.txt?query=val&var2=val2#fragment (linkified)<br/>
> http://example.com/(file's_name.txt) (linkified)<br/>
> http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7348] (linkified)<br/>
> http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7348]/file.txt (linkified)<br/>
> http://youtube.com:80/path/file.txt?query=val&var2=val2 (linkified)<br/>
> www.example.me (not linkified)<br/>
> example.me (not linkified)<br/>
在上面的代码中,最后两个字符串没有链接我想要的链接。我在 JavaScript RegExp 中尝试了消极的向后看,即使这样也没有运气。
((?!(http|ftp|https|ftps)://)^[a-z0-9-]+(.[a-z0-9-]+)+([/?].*)?) - 消极的回顾
我是so.com的新手,如果我的问题不清楚,请原谅。