hchron28 Posted June 3, 2015 Share Posted June 3, 2015 This is my code... } $telephone_exp = "/^[0-9]+$/"; if(!preg_match($telephone_exp,$telephone)) { $error_message .= 'The Telephone you entered does not appear to be valid.<br />'; I need it to also accept the following 3 symboles; - ) ( Thanks in advance for any help. Quote Link to comment https://forums.phpfreaks.com/topic/296613-validation-issue/ Share on other sites More sharing options...
QuickOldCar Posted June 3, 2015 Share Posted June 3, 2015 //Simple: must contain 0 to 9 or dash all the way throughout $telephone_exp = "/^[0-9-]+$/"; But lets expand on that a bit, have some examples below <?php $error_message = ''; //city codes $telephone = "+11 (555) 123-4567"; //10 digit $telephone = "555-123-4567"; $telephone = "(555) 123-4567"; //must contain 0 to 9 or dash all the way throughout $telephone_exp = "/^[0-9-]+$/"; //International which includes city codes $telephone_exp = "/^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/"; //10 digit format with optional parenthesis, separated space or dash $telephone_exp = "/^(\+0?1\s)?\(?\d{3}\)?[\s-]\d{3}[\s-]\d{4}$/"; //make sure you trim the number beforehand for whitespace $telephone = trim($telephone); if(!preg_match($telephone_exp,$telephone)) { $error_message .= 'The Telephone you entered does not appear to be valid.<br />'; } ?> When it comes down to it is many ways someone can type a phone number into a single text area. Maybe the right way to do it is to separate each number field in the form and force them to use only numbers, making the city code and area code as optional. 1 Quote Link to comment https://forums.phpfreaks.com/topic/296613-validation-issue/#findComment-1513077 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.