Laravel — Как проверить кириллицу

Мне нужно проверить, является ли ввод utf-8 символов кириллицы. Есть ли что-то подобное?

$this->validate($request, [
'name' => 'required|cyrillic'
]);

Если нет, то как мне этого добиться?

2

Решение

Вы должны создать собственное правило проверки:

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()
{
//
}
}
2

Другие решения

function isCyrillic($text) {
return preg_match('/[А-Яа-яЁё]/u', $text);
}

вернет true, если встречается кириллический символ

1

Используя регулярное выражение от @ Hearner’s ответ, Вы можете добавить регулярное выражение в свои правила, но при использовании регулярных выражений вы должны добавить правила в массив, потому что | символ имеет особое значение в регулярных выражениях:

$this->validate($request, [
'name' => array('required', 'regex:/[А-Яа-яЁё]/u')
]);
1

В моем случае, проверка корректности laravel 5.2 некорректно работает с

[А-Яа-я]

пропуская некоторые символы, такие как:

«У ц ш щ» и т. Д.

Это не блестящее решение, но оно работает правильно в моем случае:


$text_regex = '/^[А-ЯЦцУуШшЩщФфЫыРрЭэЧчТтЬьЮюЪъХхЁа-яёa-zA-Z0-9\- @%;()\$\.\,\"\']+$/';

1

пытаться

$this->validate($request, [
'name' => ['required', 'regex:/^[А-Яа-яЁё]$/u'],
]);
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector