2013-11-01 91 views
0

有什么不对的的preg_match错误未知的修饰词 '('

public static function validaDataHoraBR($data_hora){ 
    $pattern = "/^([1-9]|0[1-9]|[1,2][0-9]|3[0,1])/([1-9]|1[0,1,2])/\d{4} ([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,2}(:([0-5][0-9])){1,2}$/"; 
    return (preg_match($pattern, $data_hora)) ? array(true) : array(false,' não é uma data e hora no formato BR!<br>'); 
} 

这种模式验证这一点 - 20/08/2011 21:00:00

错误:消息:的preg_match()函数在正则表达式未知的修饰 '('

+3

为什么要使用正则表达式来验证日期? [使用'DateTime'类代替](http://stackoverflow.com/a/19271434/1438393)。 –

回答

3

逃逸/

"/^([1-9]|0[1-9]|[1,2][0-9]|3[0,1])\/([1-9]|1[0,1,2])\/\d{4} ([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,2}(:([0-5][0-9])){1,2}$/" 
#         ^    ^

:.preg匹配。否则,/被识别为正则表达式的结尾。

或者使用不同的分隔符:

"#^([1-9]|0[1-9]|[1,2][0-9]|3[0,1])/([1-9]|1[0,1,2])/\d{4} ([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,2}(:([0-5][0-9])){1,2}$#" 
+0

'+ 1'。或者,您可以使用不同的分隔符。 :) –

+0

@AmalMurali,我补充说。感谢您的评论。 – falsetru

相关问题