Laravelバリデーションで独自の日本語チェックを設定する

2024.06.07 09:00
2024.06.06 18:15
Laravelバリデーションで独自の日本語チェックを設定する

laravelのバリデーションで迷惑メールを簡易的に弾くために、
日本語が入ってないとエラーを出すような設定をしてみました。

迷惑メールの多くは英語だけなので、
日本語が入っていないとエラーになるという目論見です。

もちろん海外対応のサイトなら使えないですけどね。

ここでは「name」で送られてきた値に「required」と今回設定した「日本語チェック」をかけます。ちなみに「kana」が通常の指定ですね。

    public function rules()
    {
        return [
            'name' => [
                'required',
                function ($attribute, $value, $fail) {
                    if (preg_match("/[ぁ-ん]+|[ァ-ヴー]+|[一-龠]+/u", $value) === 0) {
                        return $fail('お名前は日本語で入力してください');
                    }
                }
            ],
            'kana' => 'required|max:255',
        ];
    }

こんな感じで関数を指定してその中で正規表現チェックをしてあげます。
これで実装完了です。

今回は以上です!