我正在尝试为以下网址添加preg_match
验证:
http://test.com/page/?param1[0=a¶m2[1]=b
如果您在上面的示例中看到缺少一个方括号。
答案 0 :(得分:3)
我认为你不需要正则表达式。您可以简单地使用parse_url,它将为您进行解析和验证,然后您可以检查每个组件是否符合您的预期。
答案 1 :(得分:1)
使用两个正则表达式进行检查,这可能适用于您
$website = 'http://test.com/page/?param1[0=a¶m2[1]=b';
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website) || !preg_match("/^[^\[\]]*+(\[(?>[^\[\]]|(?1))*+\][^\[\]]*+)*$/",$website)) {
echo "Invalid URL";
}else{
echo 'valid';
}
O / p:无效网址
此检查的唯一问题是它只检查支架不平衡,而不是它的位置。