php laravel 正規表現
解決したいこと
formValidationに入れることはできたのですが、
カスタムバリデーションにて正規表現を追加したいのですがうまくいきません。
バリデーションでチェックしたいことは、絵文字😢が入っている場合はエラーメッセージを表示したいです。
例)
まずformValidationに入れたさいのチェック
'hoge' => 'required|not_regex:/[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]/',
例)
カスタムバリデーションにてチェック入れた場合
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class EmojiValidation implements Rule
{
/**
* Create a new rule instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
return preg_match('/[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]/', $value);
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'The validation error message.';
}
}
自分で試したこと
カスタムバリデーションだと絵文字でなかったらひっかかるようになっているのかと思い、
return preg_match('/[xF0-xF7][x80-xBF][x80-xBF][x80-xBF]/', $value);
このよう修正してみました。絵文字がひとつの場合『😢』は弾いてもらえるのですが、そこに文字が入ると『😢ああああ』弾かれません。
どなたかわかる方ご教授願いします。
0