Intereting Posts
Повторная запись URL-адреса Любые ошибки с этим регулярным выражением, которые соответствуют амперсандам, которые еще не закодированы FullCalendar – источник JSON не работает, но напрямую использует данные JSON. array_key_exists не работает PHP Неустранимая ошибка: класс 'MyApp \ Chat' не найден в /MyApp/chat-server.php сортировка массива php Каков наилучший способ защиты паролем папки / страницы с использованием php без db или имени пользователя Что такое хорошая библиотека PHP Active Record? «Установить имена» и mysqli_set_charset – кроме того, что они влияют на mysqli_escape_string, они идентичны? Как и зачем использовать фигурные скобки: return $ this -> {$ this-> action} (); Разница в скорости при использовании встроенных строк против конкатенации в php5? Symfony2 ParamConverter не связан с @Annotation (кеш должен быть очищен после любого изменения файла) раскол против взрыва в php Установите корень документа в приложении Zend Framework 1.12.x в службе Azure Cloud Service Передать переменную js, чтобы сформировать URL-адрес действия

PHP регулярное выражение для ливанского номера телефона

Я пишу приложение php, которое спрашивает людей по их номеру телефона в Ливане. Я не хочу быть очень строгим в формате ввода, поэтому я сталкиваюсь с некоторыми проблемами проверки.

Номер телефона на ливанском языке выглядит так.

961 3 123456

961 : код страны. Я хочу, чтобы он был действительным с или без него.

3 : код зоны. вот где это сложно. возможные кодовые коды – 03, 70 и 71. Когда код страны присутствует, 03 падает 0 и становится 3, а 70 и 71 равны с кодом страны или без нее.

123456 : номер телефона, всегда 6 цифр.

вот форматы, которые я пытаюсь проверить:

961 3 123456
961 70 123456
961 71 123456
03 123456
70 123456
71 123456

пробелы здесь только для ясности, я проверяю после удаления всех пробелов и не буквенно-цифровых символов.

вот и все, было бы здорово, если кто-то может помочь. благодаря

Related of "PHP регулярное выражение для ливанского номера телефона"

Я уверен, что есть способ сделать это, но

^(961(3|70|71)|(03|70|71))\d{6}$ 

кажется, работает, предполагая, что я понимаю требования.

^((961)?(7(0|1))|(961|0)3)[0-9]{6}$

Это состав этих трех регулярных выражений:

 (961)?(7(0|1)) // 70 and 71 prefixes (961|0)3 // (0)3 prefix [0-9]{6} // main number 

Разрешая пробелы или общие разделительные символы (хотя я знаю, что вы сказали, что вас это не беспокоит):

 ^((961[\s+-]*(3|7(0|1)))|(03|7(0|1)))[\s+-]*\d{6}$ 

http://regexr.com?2t89v