使用正则表达式验证url

kum*_*mar 9 php regex

我已经通过所有可能的方式为url验证使用正则表达式,但我没有得到任何...我需要的是url可以像

google.com
http://google.com
https://google.com
http://www.google.com
https://www.google.com
Run Code Online (Sandbox Code Playgroud)

但它不应该允许,如果只是 google

最后事情是.extensions强制性的

我试过这个 /^[a-z0-9-]+(.[a-z0-9-]*)(.[a-z0-9-]*)$/

谁能在这种情况下帮助我..

Yog*_*har 8

您可以使用filter_var和直接验证网址FILTER_VALIDATE_URL

if (filter_var($url, FILTER_VALIDATE_URL) !== false)
Run Code Online (Sandbox Code Playgroud)

编辑

使用正则表达式

$subject = "http://www.google.com";
$pattern = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i";
preg_match($pattern, $subject, $matches);
print_r($matches);
Run Code Online (Sandbox Code Playgroud)

产量

Array ( [0] => http://www.google.com )
Run Code Online (Sandbox Code Playgroud)

键盘


小智 5

试试这个表达

/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi
Run Code Online (Sandbox Code Playgroud)

它将保留您上面提到的所有案例