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 Link to comment https://forums.phpfreaks.com/topic/21220-ereg-preg_match-none-work-for-me/ 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:]] Link to comment https://forums.phpfreaks.com/topic/21220-ereg-preg_match-none-work-for-me/#findComment-94362 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 Link to comment https://forums.phpfreaks.com/topic/21220-ereg-preg_match-none-work-for-me/#findComment-94365 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] Link to comment https://forums.phpfreaks.com/topic/21220-ereg-preg_match-none-work-for-me/#findComment-94366 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.