Intereting Posts
PHP: динамическое падение с помощью optgroup Странная ошибка при увеличении предела памяти PHP – нужен cron для обработки обратного сайта при регистрации пользователя … (или процесс fork) Проблема API BigCommerce со значением страницы Вычитание времени в PHP Как получить абсолютный путь вызывающего файла в функции, вызванной в PHP? «Рамка тестов выходит неожиданно», когда тест PASSES, но ОТКАЗЫВАЕТ изящно Yii – получить мин, максимум столбца, используя активную запись как реализовать систему входа под php? Несколько приложений, использующих одно и то же ядро ​​CakePHP Как подключить два или несколько файлов и отправить почту в PHP Как найти элементы в массиве, которые содержат заданную подстроку? Разделитель не должен быть буквенно-цифровым или обратным слэшем, а preg_match FPDF, создайте PDF с помощью структуры заголовка таблицы уровня дерева с закругленными углами PHP-массив для jsTree

Каково регулярное выражение для проверки международного номера телефона в php или zend?

У меня есть форма zend, где у меня есть поле номера телефона, и мне нужно проверить валидатор.

Я решил использовать для этого регулярное выражение. Я искал google, но результаты, которые у меня есть, не работают.

Может кто-нибудь, пожалуйста, предоставит мне регулярное выражение. вот мой код:

$phone = new Zend_Form_Element_Text('phone'); $phone->setRequired(true); $phone->setLabel('Phone :') ->addFilter('StripTags') ->addValidator('NotEmpty', false, array('messages'=>'phone cannot be empty')) ->addFilter('StringTrim') ->addValidator('regex', false, array('/^[0-9 ]+$/','messages'=>'not a valid phone number')) ->addValidator('StringLength', false, array(5, 25, 'messages'=>'phone must be 5-25 character')) 

заранее спасибо

 /^((\+|00)\d{1,3})?\d+$/ 

Попробуйте приведенное выше выражение. надеюсь это поможет.

Обратите внимание, что номер телефона является одной из самых сложных ежедневных проверок данных, которые существуют (вместе с электронной почтой, которая может содержать, например, «+» или номер порта в домене). Вы должны понимать последствия использования «некоторого» регулярного выражения. Могут быть некоторые пользователи (даже целые страны), которые не будут соответствовать некоторым регулярным выражениям. Или пользователи могут вводить числа, которые не являются номерами телефонов, даже если они соответствуют регулярному выражению.

http://en.wikipedia.org/wiki/E.164

В Zend_Phone появилась проблема с внедрением E.164. Но я не был реализован в конце. Принятое решение ( /^((\+|00)\d{1,3})?\d+$/ ) будет соответствовать следующей строке как действительный телефон:

 +0000000000000000000000000000000000000000000000 

Вы можете попробовать это, работает для меня

 /^(\+[\d|\-]*)\s([0-9]+)$/ 

или расширенная версия

 /^(\+[011|999|998|997|996|995|994|993|992|991|990|979|978|977|976|975|974|973|972|971|970|969|968|967|966|965|964|963|962|961|960|899|898|897|896|895|894|893|892|891|890|889|888|887|886|885|884|883|882|881|880|879|878|877|876|875|874|873|872|871|870|859|858|857|856|855|854|853|852|851|850|839|838|837|836|835|834|833|832|831|830|809|808|807|806|805|804|803|802|801|800|699|698|697|696|695|694|693|692|691|690|689|688|687|686|685|684|683|682|681|680|679|678|677|676|675|674|673|672|671|670|599|598|597|596|595|594|593|592|591|590|509|508|507|506|505|504|503|502|501|500|429|428|427|426|425|424|423|422|421|420|389|388|387|386|385|384|383|382|381|380|379|378|377|376|375|374|373|372|371|370|359|358|357|356|355|354|353|352|351|350|299|298|297|296|295|294|293|292|291|290|289|288|287|286|285|284|283|282|281|280|269|268|267|266|265|264|263|262|261|260|259|258|257|256|255|254|253|252|251|250|249|248|247|246|245|244|243|242|241|240|239|238|237|236|235|234|233|232|231|230|229|228|227|226|225|224|223|222|221|220|219|218|217|216|215|214|213|212|211|210|98|95|94|93|92|91|90|86|84|82|81|66|65|64|63|62|61|60|58|57|56|55|54|53|52|51|49|48|47|46|45|44|43|41|40|39|36|34|33|32|31|30|27|20|7|1|\-]*)\s([0-9]+)/