За последние 24 часа нас посетил 22321 программист и 1030 роботов. Сейчас ищут 687 программистов ...

Как в регулярное выражение с разрешенным символами добавить некоторые html сущности?

Тема в разделе "Регулярные выражения", создана пользователем ozoro, 17 апр 2020.

  1. ozoro

    ozoro Новичок

    С нами с:
    17 апр 2020
    Сообщения:
    2
    Симпатии:
    0
    Приветствую!

    Есть регулярное выражение
    PHP:
    1. $pattern = '/^([a-zA-Zа-яёА-ЯЁ0-9_. ;+-:=?%№!()\n\r]{10,20})$/iu';
    2. //проверяю так
    3. if (preg_match($pattern, $str)) {
    4.        $success = true;
    5.      }else{
    6.        $success = false;
    7.      }
    Все работает как надо. Но дело в том, что при фильтрации всех $_POST входящих данных некоторые из cимволов HTML (в том числе некоторые знаки препинания, такие как «»" '—§) конвертируются в HTML сущности, поэтому в строку приходят сущности («|»|"|'|—|§) соответственно.

    Как в указанную регулярку добавить эти сущности?

    Конечно, можно переконвертировать их в строке обратно в символы и проверять уже эту строку, добавив эти символы в регулярку. Однако, если есть возможность добавить сущности сразу в регулярку, то зачем же тратить время на их обратную конвертицию.

    Заранее, благодарю!
     
  2. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    PHP:
    1. '/^([A-ZА-ЯЁ0-9_. ;+-:=?%№!()\n\r]|&(laquo|raquo|quot|#039|mdash|sect);){10,20}$/iu'
     
    ozoro нравится это.
  3. ozoro

    ozoro Новичок

    С нами с:
    17 апр 2020
    Сообщения:
    2
    Симпатии:
    0
    Благодарю, работает.