2012-06-17 21 views
1

我想用這個正則表達式([01]?[0-9]|2[0-3]):00:00來匹配24h格式與00分鐘和秒。Codeigniter正則表達式匹配時間不工作

CI中的表單驗證規則,我進入正則表達式

regex_match[([01]?[0-9]|2[0-3]):00:00] 

,並不斷得到

Message: preg_match() [function.preg-match]: No ending matching delimiter ‘)’ found 

正則表達式在PHP的作品,但不是通過CI正則表達式規則。我究竟做錯了什麼? : -/

+1

http://codeigniter.com/forums/viewthread/185601/#883010? – DaveRandom

+0

或者可能需要一個分隔符:'regex_match [/([01]?[0-9] | 2 [0-3]):00:00 /]' - 我不確定,找不到任何該規則的文檔 – DaveRandom

+0

我可能是錯的,但我記得在表單驗證中閱讀了一些關於regex_pattern的內容,它不會讓您使用方括號或字符類。第一類的第一個右括號將結束匹配,從而給出分隔符錯誤。 –

回答

1

而不是使用正則表達式匹配器,您可以使用回調。

喜歡的東西:

$this->form_validation->set_rules('number', 'Number', 'callback_validate_24hourtimestamp'); 

function validate_24hourtimestamp ($num) 
{ 
    return preg_match('/^([01]?[0-9]|2[0-3]):00:00$/', $num); 
} 
+0

謝謝,那就是我最終做的 – CyberJunkie