yuri25
@yuri25
Тунеядец

Почему сайт на Laravel 5.5.40 не воспринимает tags и META Keywords на русском языке при публикации поста?

Есть проект для стартового сайта здесь https://github.com/bestmomo/laravel5-5-example
Я установил его. Если добавить из админки новый пост и использовать tags и META Keywords на английском языке - то пост нормально публикуется. Если написать tags и META Keywords на русском - то поля ввода этих данных становятся красными и внизу такая надпись
Tags, separated by commas (no spaces), should have a maximum of 50 characters.
и такая
Keywords, separated by commas (no spaces), should have a maximum of 50 characters.

Я полагаю, что не проходит валидация в этом файле...
https://github.com/bestmomo/laravel5-5-example/blo...
А именно в этой вот строке:
$regex = '/^[A-Za-z0-9-éèàù]{1,50}?(,[A-Za-z0-9-éèàù]{1,50})*$/';

Я привел строку к такому виду:
$regex = '/^[A-Za-z0-9-А-Яа-я0-9]{1,50}?(,[A-Za-z0-9-А-Яа-я0-9]{1,50})*$/';

Но это никак не повлияло на результат. Я понимаю, что наверняка нужно что то изменить и в других файлах... Возможно также я неправильно добавил наши символы в регулярное выражение...
Помогите пожалуйста решить проблему с русскими тегами и ключевыми словами. Прошу сильно не пинать, laravel недавно начал изучать. И еще, светлые головы, подскажите что в этом выражении могут означать вот эти символы
éèàù

Спасибо.
  • Вопрос задан
  • 92 просмотра
Решения вопроса 2
@iljaGolubev
Попробуйте
$regex = '/^[A-Za-z0-9-А-Яа-я0-9]{1,50}?(,[A-Za-z0-9-А-Яа-я0-9]{1,50})*$/u';
docs.php.net/manual/ru/intro.mbstring.php
Ответ написан
Комментировать
yuri25
@yuri25 Автор вопроса
Тунеядец
Спасибо огромное за отклики. Чуть ранее я нашел такое решение
$regex = '/^[\p{L}zA-Z0-9]{1,50}?(,[\p{L}zA-Z0-9]{1,50})*$/u';

И оно работает. Также проверил специально это выражение:
$regex = '/^[A-Za-z0-9-А-Яа-я0-9]{1,50}?(,[A-Za-z0-9-А-Яа-я0-9]{1,50})*$/u';

И оно тоже работает. Спасибо огромное. Но появилась другая ошибка:
Intervention\Image\Exception\NotReadableException thrown with message "Unable to init from given url (http://youwo.ru/\files/yandex_2.jpg)."

В форме ввода картинки для превью к статье, откуда то появляется обратный слэш, из за него появляется такой странный УРЛ
http://youwo.ru/\files/yandex_2.jpg
и эта ошибка... Если я вручную в этой форме после выбора картинки меняю \ на вот такой / - то публикация происходит без ошибки.
Поиск решения этой ошибки ни к чему не привел... Автору я написал issue, но он тоже молчит... https://github.com/bestmomo/laravel5-5-example/iss...
Наверное будет правильно отметить первую проблему с регулярным выражением решенной и задать новый вопрос по этой ошибке или оставить здесь же? Подскажите пожалуйста и по ошибке и что делать с вопросом - задать новый или оставить здесь? Спасибо всем за ответы.

Хорошо, что не стал задавать отдельный вопрос:) Сегодня нашел причину ошибки в функции выбора файла:
Было так:
function processSelectedFile(filePath, requestingField) {
            $('#' + requestingField).val('\\' + filePath)
            $('#img').attr('src', '\\' + filePath)
        }

Стало так:
function processSelectedFile(filePath, requestingField) {
            $('#' + requestingField).val('\/' + filePath)
            $('#img').attr('src', '\/' + filePath)
        }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Yan-s
Убедитесь что дело в регулярке (попробуйте вообще ее убрать), перепишете её в редакторе с поддержкой регулярных выражений, чтобы вам было понятно что в ней происходит и где проблема.

Например в этом куске
[A-Za-z0-9-А-Яа-я0-9]

дважды повторяется 0-9, после первой 0-9 лишний дефис.
[A-Za-z0-9А-Яа-я]

Возможно это поможет, но вы всё равно должны сами понимать что происходит в выражении.

Указанные вами символы (éèàù) просто указаны как допустимые.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы