Ell20 Posted February 12, 2008 Share Posted February 12, 2008 Hi, Im attempting to make a regular expression to check that the data input is a valid telephone number. Im looking to accept telephone numbers in either of these formats: +447973886123 or +4407973886123 or 07973886123 I have had ago but dont think its working correctly: if (eregi ("[a-z0-9\+]{11,14}", stripslashes(trim($_POST['contact_number'])))) { Appreciate any help Link to comment https://forums.phpfreaks.com/topic/90788-telephone-regular-expression/ Share on other sites More sharing options...
thebadbad Posted February 12, 2008 Share Posted February 12, 2008 I know why it isn't working: If you enter a number that's, say, too long, eregi will still return true, because it found a number sequence between 11 and 14 in length (i.e. it doesn't care about the rest of the input). I don't know too much about RegEx, but I found a working solution. You just compare the length of the input with the length of the matched number; if they are equal, the input is valid, else invalid. <?php eregi('(\+?[0-9]{11,13})', stripslashes(trim($_POST['contact_number'])), $regs); if (strlen(stripslashes(trim($_POST['contact_number']))) == strlen(trim($regs[1]))) { echo 'The number is valid!'; } else { echo 'The number is invalid.'; } ?> I removed the a-z from the pattern, and added the optional plus at the start (question mark means 0 or 1 of the previous character; the escaped plus). And the max length of numbers is now 13, because I left out the plus. You should also remember that special characters inside square brackets mustn't be escaped, as they are matched literally. Link to comment https://forums.phpfreaks.com/topic/90788-telephone-regular-expression/#findComment-465385 Share on other sites More sharing options...
Ell20 Posted February 12, 2008 Author Share Posted February 12, 2008 Seems to be working! Thanks alot for your help! Cheers Link to comment https://forums.phpfreaks.com/topic/90788-telephone-regular-expression/#findComment-465393 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.