1

これの何が問題なのですか?

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() [function.preg-match]: 不明な修飾子 '('

4

1 に答える 1

4

/正規表現でエスケープします。

"/^([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}$/"
#                                   ^                 ^

それ以外の場合/は、正規表現の末尾として認識されます。

または別の区切り文字を使用します。

"#^([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}$#"
于 2013-11-01T12:20:44.653 に答える