2016-05-27 5 views
2

Мне нужно проверить, введен ли ввод кириллических символов utf-8. Есть что-то вроде этого?Laravel - Как проверить кириллицу

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

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

+0

Проверка наличия ввода кириллических символов, и если вход UTF-8, кириллические символы - две разные проблемы. – apokryfos

ответ

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

Не рекомендуется размещать ссылку в качестве ответа. Ссылки устарели и недействительны. Лучше, если вы также извлечете соответствующие части из ссылки. – apokryfos

+0

Спасибо за внимание – Pyton

+1

Что сделало бы это замечательным будет 'Validator :: extend ('cyrillic', function ($ attribute, $ value, $ parameters, $ validator) {return preg_match ('/ [А-Яа-яЁё]/u ', $ text);}); вместо общих вещей «foo». Это даст полный ответ на вопрос – apokryfos

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

возвращает истину, если кириллица персонаж встречается

+0

Это не ответ на вопрос. Это не отвечает на вопрос о Laravel. – IllegalPigeon

1

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

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

попробовать

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

В моем случае, Laravel +5,2 проверки некорректная работа

[А-Яа-я]
пропуская некоторые символы как :

'У ц ш щ' и т.д.

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


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