我需要使用正则表达式检查网址。
如果用户输入网址为
我有一个像
这样的正则表达式/^(http\:\/\/[a-zA-Z0-9_\-]+(?:\.[a-zA-Z0-9_\-]+)*\.[a-zA-Z]{2,4}(?:\/[a-zA-Z0-9_]+)*(?:\/[a-zA-Z0-9_]+\.[a-zA-Z]{2,4}(?:\?[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)?)?(?:\&[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)*)$/
但它只允许第二个选项。如何修改正则表达式,以便它也应该接受第1和第3个选项
答案 0 :(得分:22)
这是测试域名的一个非常基本的表达方式:
@^(http\:\/\/|https\:\/\/)?([a-z0-9][a-z0-9\-]*\.)+[a-z0-9][a-z0-9\-]*$@i
应匹配:
domain.com
www.domain.com
http://domain.com
https://domain.com
答案 1 :(得分:3)
使用以下程序验证网站网址。
它将验证以下内容和任何有效的网站网址。
<?php
$string_url="https://www.test.com";
$reg_exp = "/^(http(s?):\/\/)?(www\.)+[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/";
if(preg_match($reg_exp, $string_url) == TRUE){
echo "URL is valid format";
}
else{
echo "URL is invalid format";
}
?>
答案 2 :(得分:1)
您可以将http://
作为可选内容,s
中的https
可选为:
/^((?:http(?:s)?\:\/\/)?[a-zA-Z0-9_-]+(?:.[a-zA-Z0-9_-]+)*.[a-zA-Z]{2,4}(?:\/[a-zA-Z0-9_]+)*(?:\/[a-zA-Z0-9_]+.[a-zA-Z]{2,4}(?:\?[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)?)?(?:\&[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)*)$/
答案 3 :(得分:1)
您也可以使用此模式:
(http(s)?://)?([\w-]+\.)+[\w-]+(/[\w- ;,./?%&=]*)?
这适用于匹配:
http://www.google.com
https://www.google.com
www.google.com
google.com
google.in
匹配的简单模式。
希望这会对某人有所帮助!!!
答案 4 :(得分:1)
答案 5 :(得分:0)
请尝试以下方法:
filter_var($your_variable, FILTER_VALIDATE_URL);