Так сразу я в регулярках бомж я ваще не понимаю в них не фига... Кто может сказать что я делаю вот этой регуляркой.. Код (Text): ^(8|+7)[-][\d]{3})[-]([\d]{3})[-]([\d]{2})[-]([\d]{2})$ --- Добавлено --- А вообще я хочу проверить телефон 8(964)436-02-43 Вот такой вот но чё то не выходит не фига...
совпадение с самого начала строки одно из двух, либо нет вообще один знак - или нет вообще 3 цифры (digital) лишняя скобка, которая портит выражение было 3 цифры выбираем в отдельное совпадение и т.д., суть не меняется. У тебя не хватает захвата скобок вокруг кода оператора, а скобки это спецсимволы - их экранировать надо.
Код (Text): ^(8|+7)[-]?\([\d]{3})[-]?\([\d]{3})[-]?\([\d]{2})[-]?\([\d]{2})$ Я в конец запутался, уже.... Конкретный абзац... --- Добавлено --- я раз 150 уже разнообразно попробовал но телефон не входит не в какую 8(964)436-02-43 --- Добавлено --- PHP: $value = '8'; if(preg_match('^(8|+7)', $value)): $result['error']['regular'] = 'Да я прошёл'; else: $result['error']['regular'] = 'нет я не прошёл'; endif; И данное выражение не хрина не срабатывает какого ? --- Добавлено --- PHP: $value = '1'; if(preg_match('^[0-9]{1}$', $value)): $result['error']['regular'] = 'Да я прошёл'; else: $result['error']['regular'] = 'нет я не прошёл'; endif; И это не срабатывает что не так делаю Оо ????? --- Добавлено --- @[vs] Помоги плиз не пойму что не так... --- Добавлено --- PHP: $value = 'AGHFHRTHRTHRTHRHT'; if(preg_match('^(\[A-B]{0,5}\)', $value)): $result['error']['regular'] = 'Да я прошёл'; else: $result['error']['regular'] = 'нет я не прошёл'; endif; И так тоже я не прошёл ....
@askanim а выражения нельзя прям так записывать. Должен быть разграничитель. Например так: Код (Text): "/[A-Z]/" Здесь слеш разграничитель. После закрывающего можно писать модификаторы (буквы U, i, s...)
ЛОООООООООООООООЛ --- Добавлено --- @[vs] Я уже сравнил чем отличается моё регулярное вырожение от того что в доке... Я блин даже не сразу в чухнул что проблема в "/pattern regular/" Абзац я то смотрел регулярки по python учебнику там внятней про них написано PHP: preg_match('/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/', $value) Всё вот так работает оная для телефонов
Данная что я скинул подходит для номеров Цитирую автора: " Ориентировано на российские мобильные + городские с кодом из 3 цифр (например, Москва). Зеленый свет для: +79261234567 89261234567 79261234567 +7 926 123 45 67 8(926)123-45-67 123-45-67 9261234567 79261234567 (495)1234567 (495) 123 45 67 89261234567 8-926-123-45-67 8 927 1234 234 8 927 12 12 888 8 927 12 555 12 8 927 123 8 123 " взял регулярку отсюда https://habrahabr.ru/post/110731/ --- Добавлено --- @mahmuzar я не забыл я не знал Я же говорю бомж в регулярках. --- Добавлено --- А вообще надо бы потренироваться их писать как нибудь сесть день уделить потыкаться --- Добавлено --- Спасибо всем за то что откликнулись
Я так же. Несколько раз брался, и так не до конца. PHP: $text = '+7(964)436-02-43'; echo preg_match("/(8|\+7)\([\d]{3}\)([\d]{3})(\-)([\d]{2})(\-)([\d]{2})/", $text); Вот переделал твою регулярку, вроде есть совпадение. --- Добавлено --- Если кроме номера ничего не ожидается логично было бы поставить символы которые изначально у тебя стояли ^ начало и $-конец.