[Laravel8.x] 半角英数字記号のバリデーションをmake:ruleで作る

IDやパスワードにalpha_dashを使おうとすると、日本語が通過してしまう。独自ルールを作る。

$ php artisan make:rule AlphaRule

app/Rules/AlphaRule.php

public function passes($attribute, $value)
    {
        //
        return preg_match('/^[!-~]+$/', $value);
    }

    public function message()
    {
        return ':attribute は半角英数字記号で入力してください';
    }

Request内で使用

use App\Rules\AlphaRule;

// 省略

'name' => ['required','unique:users,name','min:2','max:24',new AlphaRule],

->
ID は半角英数字記号で入力してください

これは実装が相当簡単