Javascript 正则表达式右匹配url,结尾带点

Javascript 正则表达式右匹配url,结尾带点,javascript,regex,Javascript,Regex,我有权在文本中查找URL,但有一件事我无法解决。 如果url以点结尾-此点作为url的一部分匹配 这是我的模式: /(^|[\?\s])(www\.[^\? ]+\/[^\/ ]*\?[^\? ]+|www\.[^\? ]+)/g 对于示例,文本为,url为www.domain.com。其次是wiki.org。 url最后一个点不是url的一部分,但regex也会替换它 最简单的修复方法是要求最后一个字符为非标点符号: /(^|[?\s])(www\.[^? ]+\/[^/ ]*\?[^? ]

我有权在文本中查找URL,但有一件事我无法解决。 如果url以点结尾-此点作为url的一部分匹配

这是我的模式:

/(^|[\?\s])(www\.[^\? ]+\/[^\/ ]*\?[^\? ]+|www\.[^\? ]+)/g
对于示例,文本为
,url为www.domain.com。其次是wiki.org。

url最后一个点不是url的一部分,但regex也会替换它


最简单的修复方法是要求最后一个字符为非标点符号:

/(^|[?\s])(www\.[^? ]+\/[^/ ]*\?[^? ]*[^?.,! ]|www\.[^? ]*[^?.,! ])/g
请注意,我删除了一些反斜杠,因为它们不是必需的


然而,这仍然不是一个健壮的URL模式。那么,为什么要重新发明轮子而不是仅仅使用?

发布您当前的正则表达式,这样我们就可以看到您在尝试什么了?好的阅读:@thg435,这就是为什么对URL使用正则表达式是个坏主意。这个正则表达式一点也不好。为什么这个
怎么了?www.domain.com
匹配而不是
我很好,谢谢!www.domain.com
?好吧,这修复了点,但不是像“google.com,yahoo.com!”这样的东西。@thg435事实上是这样的。。。我修正了这一点,但我回答的要点实际上是这个解决方案也不健壮,OP应该求助于现有的解决方案。是的,我在另一个提要中添加了它,它很容易被重新发明。。。好问题:)有些正则表达式不方便,因为它检测A-Z而不是西里尔语,有些使用TLD列表,也不方便。。我喜欢使用自制的,但regex对我来说新的一件事真的没有准备好,它的url包含端口。比如www.domain.net:8080