Intereting Posts
В Laravel 5, как я могу получить список всех файлов в общей папке? Основная функция почты (PHP) дополнительный параметр параметра «-f» Ошибка MySQL: «mysql_fetch_assoc () ожидает, что параметр 1 будет ресурсом» Пока цикл застревает в первом результате запроса Yii2 gii crud error Класс 'app \ models \ Yii' не найден Как узнать, вызван ли скрипт php через require_once ()? PHP Include на основе REQUEST_URI Symfony 2 – Макет встраивает "no entity / class form" проверка не работает получить медиа: описание и медиа: URL-адрес контента из xml FullCalendar – источник JSON не работает, но напрямую использует данные JSON. цикл через файлы в папке в php Вставьте текущую дату / время, используя now () в поле, используя MySQL / PHP Как использовать cURL для получения данных jSON и декодирования данных? Чтение XML-динамического PHP PHP Traversing Function, чтобы превратить один массив в вложенный массив с дочерними элементами – на основе родительского идентификатора

Функция preg_match для телефонных номеров

У меня есть некоторые проблемы, соответствующие номеру телефона с этой функцией

return (bool)preg_match( '/^[\-+]?[0-9]+$/', $num); 

Вышеуказанная функция всегда возвращает false после снятия скобок ( ) и тире - слева – +1234567890

что мне не хватает

Solutions Collecting From Web of "Функция preg_match для телефонных номеров"

Тест Здесь: https://eval.in/84659

 $p = '/[\-+]?[0-9]+$/'; $num ='+1234567890'; echo preg_match( $p, $num)." "; $num1 ='+1234567890d'; echo preg_match( $p, $num1)." "; $num1 ='-1234567890'; echo preg_match( $p, $num1)." "; 

ВЫВОД:

 1 0 1 

Вероятно, в строке есть пробелы. Попробуйте использовать обрезку

 return (bool)preg_match( '/^[\-+]?[0-9]+$/', trim($num)); 

Только для телефонов Северной Америки вы можете использовать это

 ^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$