警告:preg_match()[function.preg-match]:找不到结束分隔符'^'

时间:2013-09-08 17:57:53

标签: php validation error-handling wordpress-plugin preg-match

我正在努力解决我的一个wordpress插件遇到的问题。

这是第666行

function isUrl($url)
{
    return preg_match("^http:\/\/[-0-9a-z\._]+.*$/i", trim( $url ));
}

您对如何解决此警告有何看法?这很刺激。我无法理解,我已经尝试过,研究过一切!

3 个答案:

答案 0 :(得分:5)

缺少

/preg_match('/pattern/',$string);

preg_match("/^http:\/\/[-0-9a-z\._]+.*$/i", trim( $url ));

答案 1 :(得分:2)

正如在其他答案中所说,你必须在正则表达式周围使用分隔符。您还可以使用除/之外的其他字符来避免转义它们:

return preg_match("~^http://[-0-9a-z._]+.*$~i", trim( $url ));

您可以使用\w的快捷方式[a-zA-Z0-9_]

return preg_match("~^http://[-\w.]+.*$~", trim( $url ));

答案 2 :(得分:1)

你的正则表达式需要一个分隔符,例如/

 return preg_match("/^http:\/\/[-0-9a-z\._]+.*$/i", trim( $url ));

此分隔符可以是不同的字符,但在正则表达式之前和之后必须相同。你可以,例如也这样做

~regex~

#regex#

优点是,使用正则表达式中没有的分隔符。如果您使用/作为分隔符并想要匹配“/”,则必须在正则表达式///内转义它,如果更改分隔符,则可以执行#/#以匹配“/”