关于正则表达式的问题

时间:2010-11-04 17:02:33

标签: javascript regex

我正在学习/练习正则表达式。我已经写了这个来测试url的...我希望它能以这些格式捕获url:

www.site.com
www.site.co.uk etc
site.com
play.site.com

所以我写了这个:

(http:\/\/)*(www)*\.*(\w{2,})(\.{1})(\w{2,3})(\.*)(\w{2,3})*

(匹配http:// 0次或更多次,后跟一些更多字符0次或更多次,后跟一个域名,后跟一个句点,后跟一些更多字符(至少2,最多3),然后接下来是一个可选的句号和一些更多的字符(对于co.uk等)。)

我对正则表达式很新,所以不确定我所做的事情是否有问题,但它似乎在测试中运行良好:http://regexpal.com/。随意撕开它!

我注意到的一件事是它与我不想要的.site.com匹配。我如何只匹配site.com并仍然允许http://和www和子域?

2 个答案:

答案 0 :(得分:6)

放“。”在“www”比赛中;这将解决您的网址中可能具有前导点匹配的问题。

答案 1 :(得分:1)

请不要在严重的情况下使用此代码。使用regexp解析URI是错误和可怕的 - 使用库来正确执行它。