If regular expressions aren't your thing - don't use regular expressions =)

e.g. write a validation function like so:

    function validateTime($check) {
        $string = current($check);
        list($mins, $seconds) = expode(':', $string);

        $validMins = is_numeric($mins);
        $validSeconds = is_numeric($seconds) && ($seconds < 60);

        return $validMins && $validSeconds;
    }

Alternatively since a regex is not cakephp specific - ask in an appropriate 
place (stack overflow) with appropriate context i.e. "how can I check that 
a string matches the format xx:yy where <it's time>?" Or - check for 
existing questions asking exactly that, like this 
one: http://stackoverflow.com/questions/3964972/validate-this-format-hhmm 
and modify to your needs

AD


On Tuesday, 11 March 2014 05:03:28 UTC+1, Justin Atack wrote:
>
> Anybody?
>
> On Friday, 7 March 2014 22:14:03 UTC+11, Justin Atack wrote:
>>
>> Hi All,
>>
>> I need to validate a field that will store a time instance MM:SS e.g. 
>> 04:32 would represent 4 minutes and 32 seconds.
>>
>> I have created the code in my model to validate the time field but I 
>> really don't know much about regex. Here are a few that work ok...
>>
>> /([0-9]\d|60):([0-9]\d|60)/
>>
>> ^([0-5]?[0-9]):([0-5]?[0-9])^
>>
>> but neither causes an error if the time is 99:99. This is ok for the MM 
>> part as 99 minutes is valid but the SS part should only ever have a max of 
>> 59 (seconds).
>>
>> I hope that makes sense!
>>
>> This is the code in my model this far
>>
>> 'time' => array(
>> 'custom' => array(
>> 'rule' => array('custom', '/([0-9]\d|60):([0-9]\d|60)/'), //MM:SS
>> //'rule' => array('custom', '^([0-5]?[0-9]):([0-5]?[0-9])^'), //MM:SS
>> 'message' => 'Time must be entered as MM:SS. e.g. 04:32 representing 4 
>> minutes and 32 seconds.',
>> 'allowEmpty' => true,
>> //'required' => false,
>> //'last' => false, // Stop validation after this rule
>> //'on' => 'create', // Limit validation to 'create' or 'update' operations
>> ),
>> 'maxLength' => array(
>> 'rule' => array('maxLength', '5'),
>> 'message' => 'Maximum length of time input is five characters. e.g. 
>> MM:SS',
>> //'allowEmpty' => true,
>> //'required' => false,
>> //'last' => false, // Stop validation after this rule
>> //'on' => 'create', // Limit validation to 'create' or 'update' operations
>> ), 
>> ),
>> );
>>
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to