Laravel,验证alpha_dash防止破折号

时间:2019-04-13 05:09:13

标签: php laravel

我有验证规则:

$rules = ['username' => 'required|string|alpha_dash']

我需要在验证中防止破折号,仅允许使用下划线,字母和数字。我该怎么办?现在alpha_dash允许破折号..

3 个答案:

答案 0 :(得分:3)

如果您愿意,我建议使用regex验证来获得更多自定义功能。请参阅https://laravel.com/docs/5.8/validation#rule-regex

'regex:/^[A-Za-z0-9_]+$/'

或更具体地说

$rules = ['username' => 'required|string|regex:/^[A-Za-z0-9_]+$/']

因为,根据文档alpha_dash支持-

  

正在验证的字段也可以包含字母数字字符   破折号和下划线。

答案 1 :(得分:3)

您可以在验证中使用regex:pattern

$rules = ['username' => 'required|string|regex:/^[A-Za-z0-9_.]+$/']

答案 2 :(得分:0)

除了其他答案,您还可以创建自定义CentOS 6.5

遵循artisan命令将在validation rule文件夹中创建一个新规则。

app\Rules\

字母数字

php artisan make:rule AlphaNumeric

控制器

class AlphaNumeric implements Rule
{
    public function passes($attribute, $value)
    {
        return preg_match('/^[A-Za-z0-9_]+$/', $value);
    }

    public function message()
    {
       return 'your custom error message.';
    }
}

此方法可用于创建更复杂,更灵活的验证。

相关问题