Javascript正则表达式仅在键入时匹配整个url

Javascript正则表达式仅在键入时匹配整个url,javascript,regex,Javascript,Regex,我试图使用javascript在用户键入(onkeyup)时查找文本区域中的所有URL。我遇到的问题是找到一个正则表达式来匹配整个URL,我只需要它来匹配文本区域中所有完整URL的URL 只要用户输入了模式的第一部分,我通过Google和我自己的实验找到的所有现有正则表达式似乎都是匹配的。例如,如果我正在打字,然后开始打字,突然之间,它会匹配 我需要找到一个正则表达式,该正则表达式将匹配并返回textarea中所有URL的数组,同时也不匹配,除非此人已完成完整URL的键入。希望这是有道理的 谢谢

我试图使用javascript在用户键入(onkeyup)时查找文本区域中的所有URL。我遇到的问题是找到一个正则表达式来匹配整个URL,我只需要它来匹配文本区域中所有完整URL的URL

只要用户输入了模式的第一部分,我通过Google和我自己的实验找到的所有现有正则表达式似乎都是匹配的。例如,如果我正在打字,然后开始打字,突然之间,它会匹配

我需要找到一个正则表达式,该正则表达式将匹配并返回textarea中所有URL的数组,同时也不匹配,除非此人已完成完整URL的键入。希望这是有道理的


谢谢大家!

大卫的评论是正确的

你怎么能确定
http://www.domain.com/whatever
是一个完整的URL,但
http://www.domain.com/what
不是吗?或
http://www.domain.com
已完成,但
http://www.domain.co
不是吗?(是的,那里有一个真实的网站)

您可能不允许主机名中没有
,但为什么不应该
http://to
是否有效?(是的,那里有一个真实的网站。)更不用说
http://テスト


对于“什么是正则表达式来匹配我看来像URL的东西”这个问题,没有可能一致的答案。

我最终使用了以下模式:

   var pattern = /((https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])(\s|\.\s|\,\s|\n|\r|\n\r)/ig;

这会检查是否存在空格或回车符(与逗号或句点结合,我可能需要添加一些其他情况),然后删除后面的句点或逗号。

http://w是一个完整的URI。好的,我只想找到这样的模式:或者我想我可以要求有空格(或标点符号)之后,用于“监视”文本框。感谢您的深入了解。小心,许多尾随标点符号在URL中也是有效的!例如,
,!?)