За последние 24 часа нас посетили 35353 программиста и 1745 роботов. Сейчас ищут 944 программиста ...

Проверка на кол-во введённых символов utf8

Тема в разделе "PHP для новичков", создана пользователем rs_ssh, 31 май 2017.

  1. rs_ssh

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

    С нами с:
    18 янв 2014
    Сообщения:
    220
    Симпатии:
    0
    Как сделать чтобы проверка на кол-во символов срабатывала с utf8?

    PHP:
    1. if (!preg_match("/^[*\S]{4,100}$/i",$var))
    2. {
    3.     $error = "Убедитесь что строка от 4-х до 100 символов";
    4. }
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
  3. rs_ssh

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

    С нами с:
    18 янв 2014
    Сообщения:
    220
    Симпатии:
    0
    Как то так получается, можно ли покороче сделать? :)
    PHP:
    1. if (mb_strlen($var,'UTF-8') < 3 or mb_strlen($var,'UTF-8') > 100)
    2. {
    3.      $error="Убедитесь что строка от 4-х до 100 символов";
    4. }
     
  4. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Ну как минимум функцию можно вызвать один раз выше и потом оперировать уже переменной
     
    MouseZver нравится это.
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    $/ui
    u - юникод
     
  6. rs_ssh

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

    С нами с:
    18 янв 2014
    Сообщения:
    220
    Симпатии:
    0
    Спасибо на добром слове :)
     
  7. rs_ssh

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

    С нами с:
    18 янв 2014
    Сообщения:
    220
    Симпатии:
    0
    Почему то когда используешь русские и латинские символы то проверка выдает ошибку:
    Вводим - слово и slovo, выдаст ошибку.

    PHP:
    1. if (!preg_match("/^[*\S]{4,100}$/ui",$var))
    2. {
    3.     $error = "Убедитесь что строка от 4-х до 100 символов";
    4. }
     
  8. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    я уже писал выше про mb_strlen и все таки рекомендую присмотреться к ней
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    От регулярок по большей степени нужно бежать, как страшный сон. Есть функции которые это делают? стартуй! регулярные выражения - последнее дело.
     
    mkramer и alexblack нравится это.
  10. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @rs_ssh
    PHP:
    1. if (!preg_match('/\A(\w){4,100}\Z/',$var))
    2. {
    3.     $error = "Убедитесь что строка от 4-х до 100 символов";
    4. }
    Попробуй так сделать.