URL RegEx没有http://或www

时间:2014-03-28 10:30:15

标签: javascript regex url

我正在尝试构建URL RegExp。基本表达式如下所示:

/^(((http(?:s)?\:\/\/)|www\.)[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*\.[a-zA-Z]{2,6}(?:\/?|(?:\/[\w\-]+)*)(?:\/?|\/\w+((\.[a-zA-Z]{2,4})?)(?:\?[\w]+\=[\w\-]+)?)?(?:\&[\w]+\=[\w\-]+)*)$/

这对我来说很好,因为匹配这些:

http://gmail.com
http://www.gmail.com
www.gmail.com

但我希望修改它以符合这个:

gmail.com

我将不胜感激。

2 个答案:

答案 0 :(得分:3)

只需添加?即可www可选,然后它也会匹配gmail.com

使用它:

^(((http(?:s)?\:\/\/)|www\.)?[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*\.[a-zA-Z]{2,6}(?:\/?|(?:\/[\w\-]+)*)(?:\/?|\/\w+((\.[a-zA-Z]{2,4})?)(?:\?[\w]+\=[\w\-]+)?)?(?:\&[\w]+\=[\w\-]+)*)$

或者如果您想匹配 gmail.com http://gmail.com,请使用以下内容:

^([a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*\.[a-zA-Z]{2,6}(?:\/?|(?:\/[\w\-]+)*)(?:\/?|\/\w+((\.[a-zA-Z]{2,4})?)(?:\?[\w]+\=[\w\-]+)?)?(?:\&[\w]+\=[\w\-]+)*)$

请注意,这将匹配anu字符串,其中包含点和字母。

IMO最好使用这样的正则表达式:

^(http:\/\/|www\.)?[\w\.]+\.(com|net|co\.cc|co\.in)$

您可以根据自己的需要进行修改。

在这里查看演示并使用正则表达式:

http://regex101.com/r/tS4aB3

答案 1 :(得分:2)

最简单的方法是对待' www'作为另一个子域名(因为它就是全部)。

所以:

/^(((http(?:s)?\:\/\/))?([a-zA-Z0-9\-]+\.?)+(?:\.[a-zA-Z0-9\-]+)*\.[a-zA-Z]{2,6}(?:\/?|(?:\/[\w\-]+)*)(?:\/?|\/\w+((\.[a-zA-Z]{2,4})?)(?:\?[\w]+\=[\w\-]+)?)?(?:\&[\w]+\=[\w\-]+)*)$/

编辑:作为旁注,tld(即" .com"部分)现在......非常复杂。它们很多,它们可能不适合2-6个字符。