Мне нужно проверить, введен ли ввод кириллических символов utf-8. Есть что-то вроде этого?Laravel - Как проверить кириллицу
$this->validate($request, [
'name' => 'required|cyrillic'
]);
Если нет, то как я могу это достичь?
Мне нужно проверить, введен ли ввод кириллических символов utf-8. Есть что-то вроде этого?Laravel - Как проверить кириллицу
$this->validate($request, [
'name' => 'required|cyrillic'
]);
Если нет, то как я могу это достичь?
Вы должны создать собственные пользовательские правила проверки:
https://laravel.com/docs/5.1/validation#custom-validation-rules
<?php
namespace App\Providers;
use Validator;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Validator::extend('cyrillic', function ($attribute, $value, $parameters, $validator) {
return preg_match('/[А-Яа-яЁё]/u', $value);
});
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
//
}
}
Не рекомендуется размещать ссылку в качестве ответа. Ссылки устарели и недействительны. Лучше, если вы также извлечете соответствующие части из ссылки. – apokryfos
Спасибо за внимание – Pyton
Что сделало бы это замечательным будет 'Validator :: extend ('cyrillic', function ($ attribute, $ value, $ parameters, $ validator) {return preg_match ('/ [А-Яа-яЁё]/u ', $ text);}); вместо общих вещей «foo». Это даст полный ответ на вопрос – apokryfos
function isCyrillic($text) {
return preg_match('/[А-Яа-яЁё]/u', $text);
}
возвращает истину, если кириллица персонаж встречается
Это не ответ на вопрос. Это не отвечает на вопрос о Laravel. – IllegalPigeon
Использование регулярных выражений от @ Hearner-х answer, вам может добавить регулярное выражение в ваши правила, но при использовании регулярных выражений вы должны добавить правила в массив потому что |
характер имеет особое значение в регулярных выражениях:
$this->validate($request, [
'name' => array('required', 'regex:/[А-Яа-яЁё]/u')
]);
попробовать
$this->validate($request, [
'name' => ['required', 'regex:/^[А-Яа-яЁё]$/u'],
]);
В моем случае, Laravel +5,2 проверки некорректная работа
[А-Яа-я]пропуская некоторые символы как :
'У ц ш щ' и т.д.
это не блестящее решение, но это правильно работают в моем случае:
$text_regex = '/^[А-ЯЦцУуШшЩщФфЫыРрЭэЧчТтЬьЮюЪъХхЁа-яёa-zA-Z0-9\- @%;()\$\.\,\"\']+$/';
Проверка наличия ввода кириллических символов, и если вход UTF-8, кириллические символы - две разные проблемы. – apokryfos