使用www但可选的http或https验证URL的正则表达式

时间:2016-03-14 19:56:59

标签: regex

我希望有一个正则表达式,以下列方式验证url

http://www.google.com   ->valid url
www.google.com          ->valid url
google.com              ->in-valid url
http://google.com       ->in-valid url

我尝试过关注here

的正则表达式
/(?:https?:\/\/)?(?:[a-zA-Z0-9.-]+?\.(?:[a-zA-Z])|\d+\.\d+\.\d+\.\d+)/

但它不会验证www

的存在

3 个答案:

答案 0 :(得分:1)

您可以在PHP中使用此正则表达式:

$re = '~\b(?:https?://)?(www\.[^.\s]+\.[^/\s]+|\d+\.\d+\.\d+\.\d+)~';

RegEx Demo

此正则表达式会在可选www.htpp://之前强制执行https://

PHP中的另一个选项是使用parse_url函数并检查result['host']数组条目。

答案 1 :(得分:0)

要匹配www,您必须使用这样的正则表达式。

正则表达式: (?:https?:\/\/)?www\.[a-zA-Z0-9.-]+.[a-zA-Z]+|(?:\d\.?){4}

Regex101 Demo

答案 2 :(得分:0)

www放入正则表达式:

/^(?:https?:\/\/)?(www(\.[\w-]+)+|\d+(\.\d+){3})/

我也对它进行了一些改进(因此它不匹配" www ......"等等)

请参阅live demo