在JavaScript中获取URL的一部分

时间:2011-01-02 12:05:08

标签: javascript regex url

我必须匹配文本中的URL,将它们链接起来,然后只向用户显示主机 - 域名或IP地址。我该如何处理JavaScript?

感谢。
PS:请不要告诉我this; 那些正则表达式非常错误,无法匹配http://google.com

1 个答案:

答案 0 :(得分:2)

如果你不想使用正则表达式,那么你需要使用诸如indexOf之类的东西。例如,在每个元素的文本中搜索“://”,如果找到它并且它前面的位看起来像协议(或“方案”),请抓住它并使用以下有效URI字符的字符(RFC2396)。如果结果以点或问号结束,则删除点或问题(它可能结束一个句子)。还有很多话要说。

更新:啊,我从您的编辑中看到,您对正则表达式没有问题,只是问题答案中的问题。很公平。

这可能是尝试使用正则表达式 all 的地方之一应该是更多的工作,但使用正则表达式作为部分解决方案很有帮助。例如,

/[a-zA-Z][a-zA-Z0-9+\-.]*:\/\//

...可能是一种有用的方法来查找URL的开头,因为方案部分必须以alpha开头,然后可以有零个或多个alpha,digit,{{1在+section 3.1)之前的{}},-.