golyath Posted September 19, 2006 Share Posted September 19, 2006 All i want to do is check the $data variable is in the correct format (i.e 99-aa-00 9999:99)I have tried to get these to work for me but none seem to. I have put the regex through a regex checker and it works...i have this:[tt]<?php $data = "99-aa-00 9999:99"; $result=preg_match("/^[0-9]{2}-[a-Z]{2}-[0-9]{3}\s[0-9]{4}:[0-9]{2}$/", $data); if($result != "0"){ echo "correct"; } else{ echo "wrong"; }?>[/tt]but it always returns this error:Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 13can anyone tell me what im doing wrong.thank you for any help, its muchley appreciated Quote Link to comment Share on other sites More sharing options...
btherl Posted September 19, 2006 Share Posted September 19, 2006 Try [a-zA-Z] instead of [a-Z].. or [[:alpha:]] Quote Link to comment Share on other sites More sharing options...
golyath Posted September 19, 2006 Author Share Posted September 19, 2006 Cheers,I ahve tried both and they both stop the error coming up... but it returns "wrong" but it should return correct. Have structured the statement correctly?thanks Quote Link to comment Share on other sites More sharing options...
effigy Posted September 19, 2006 Share Posted September 19, 2006 You are looking for 3 digits before the space--it should be 2.[code]<pre><?php $data = '99-aa-00 9999:99'; echo preg_match('/^\d{2}-[A-Za-z]{2}-\d{2}\s\d{4}:\d{2}$/', $data) ? 'correct' : 'wrong' ;?></pre>[/code] Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.