preg_match有2条规则不起作用

时间:2017-06-08 14:24:27

标签: php if-statement

我希望preg_match接受https://http://,但不包含google.desh.st等类似的网址。

此if语句有效,但只接受https://http://个网址

if(!preg_match("/^[a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\\.+[A-Za-z0-9\.\/%&=\?\-_]+$/i", $flink)) {
    $html = "Error: invalid URL"; 
}

我尝试了这个,但这也不起作用......

$bd = "/^[a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\\.+[A-Za-z0-9\.\/%&=\?\-_]+$/i";
$dbb = "/^[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+$/i";
if(!preg_match($bd, $flink)  || !preg_match($dbb, $flink))  {
    $html = "Error: invalid URL"; 
}

有什么问题?问题页面为https://viid.su

1 个答案:

答案 0 :(得分:0)

我想你想要:

/^[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+$/
                ^-- removed a \ here.

第二个正则表达式。然后它将匹配google.desh.st