私は他の同様の投稿を見てきましたが、問題はエスケープされていないスラッシュのようです。しかし、私は彼らを逃れています。
文字列は次のようになります。
2012/12/23
これは、検証ルールを宣言する方法です。
regex_match[/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)[0-9]{2}$/]
終了区切り文字があり、日付の 2 つのスラッシュがバックスラッシュでエスケープされています。少し異なるこれも試しましたが、同じエラーが発生します。
regex_match[/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)\d\d$/]
エラーはどこにありますか?
編集:
あなたのアドバイスに従って、コールバック関数を使用してみました。これは、フォーム検証が実行されているコントローラー クラス内にある宣言です。
function mach_date($date) {
/* DEBUG */ echo 'Here I am!'; exit; // execution should stop here displaying the echo
return (bool)preg_match('/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)\d\d$/', $date);
}
application/config/form_validation.phpの検証ルール:
$config = array(
// other validation groups.....,
'articles' => array(
// other validated fields.....,
array(
'field' => 'date_p',
'label' => 'Publishing date',
'rules' => 'callback_match_date'
)
)
);