За последние 24 часа нас посетили 51075 программистов и 1431 робот. Сейчас ищут 1167 программистов ...

Помогите плиз с регуляркой, не пойму что не так.

Тема в разделе "PHP для новичков", создана пользователем askanim, 1 июл 2016.

  1. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    PHP:
    1. echo $value;
    2.         if (!preg_match("/^[а-яА-Яa-zA-Z]+$/", $value)) {
    3.             echo 'привет';
    4.         }
    в $value лежит имя Джонотан почему то проскакивает в условие какого блин.... :'\
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    может быть не хватает флага юникода?
     
    askanim нравится это.
  3. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    странно раньше всё работало и без него, я не пойму, ест ьпочитать что про флаг такой, где нибудь гуглил по разному не совсем понял что это.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ты у нас вроде любитель мануал почитать. так почему ты в мануале не видишь ничего про этот флаг? давай для начала покажи мне страницу где про флаги рассказывается.
     
  5. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Вижу там есть установка параметра flag,
    --- Добавлено ---
    https://php.ru/manual/function.preg-match.html

    Прямо там написано flags но въехать не могу, мне нужно просто проверить входящую строку что там либо русские, либо английские буквы и не пойму почему он не проезжает. бред какой-то всегда проезжало и без указания флага а тут бац и перестало, такого не бывает значит я где то накуралесил ещё, но перед вхождением, я только стрип тег делаю, по этому полю и всё. бред.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ты реально на пхп.ру мануал читаешь или это форум ссылку подменил?
     
  7. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    конечно читаю а ты что думал.
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну я думал что на офсайте лежит классный мануал
     
  9. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    он там классный то классный, но ты уверен что во флаге дело, потому что все регулярки проходят, а вот именно эта не хочет... Я прямо в шоке маленько, может я не правильно написал регулярку ?
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ахаха. ну ладно. давай с другой стороны зайдем. что делает дословно этот алгоритм?
     
    askanim нравится это.
  11. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    насколько я не знаю регулярки, но я бы там 2 флага добавил
     
    askanim нравится это.
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    askanim нравится это.
  13. Schrodinger

    Schrodinger Новичок

    С нами с:
    8 июн 2016
    Сообщения:
    40
    Симпатии:
    5
    Вот. При условии что строка в utf-8. Цель проверки найти строку в которой хотя бы 1н символ не подходит под правило [а-яА-Яa-zA-Z] либо неправилен вообще, либо строка пустая.
    Код (Text):
    1.  
    2. if ( !preg_match("/^[а-яА-Яa-zA-Z]+$/uD", $value)   ) {
    3.     echo 'привет';
    4. }
    --- Добавлено ---
    возможны ошибки
     
    askanim нравится это.
  14. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    PHP:
    1. if (!preg_match("/^[а-яА-Яa-zA-Z]+$/uD", $value)) {
    2. $this->err[] = "Текст в поле ".$value.' может состоять только из букв Русского или Английского алфавита';
    3.         }
    --- Добавлено ---
    Всё уокеей ))))

    ещё можно iu на конце добавить и тоже норм :)
    --- Добавлено ---
    Я просто не селён в регулярках вообще, и пользуюсь в данном случае шаблонами, не много запомнил как есть проверку на цифры буквы, ну сейчас знаю ещё про флаги, в мане хорошо написаны элементарные вещи :) Типа как отправить сообщение на email как отправлять запросы к бд, как пользоваться функциями массива, да и самим массивом, как использовать условны операторы, итд. чисто база синтаксиса, а регулярки это уже разговор, другой. :D, это запомнится с опытом.
     
  15. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    в мануале даны основы. кирпичики. дома из них строить тебе твоим мозгом. ты должен понимать только как работает та или иная функция на простом примере её использования и уметь встроить её в свой алгоритм.
     
  16. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Ganzal Я знаю что такое регулярные выражения, ваш сарказм в топку, про флаги не знал, спасибо буду знать.