Laravel 中正则表达式规则的自定义验证消息?

     2023-03-15     124

关键词:

【中文标题】Laravel 中正则表达式规则的自定义验证消息?【英文标题】:Custom validation message for regex rule in Laravel? 【发布时间】:2013-12-17 16:19:23 【问题描述】:

非常基本的问题,我正在尝试为 Laravel 中的正则表达式验证规则自定义错误消息。特定规则适用于密码,要求密码包含 6-20 个字符、至少一个数字和一个大写和小写字母,因此我想将这一点传达给用户,而不仅仅是显示格式为“的默认消息”无效”。

所以我尝试通过几种不同的方式将消息添加到 lang 文件中:

1)

'custom' => array(
    'password.regex:' => 'Password must contain at least one number and both uppercase and lowercase letters.'
)

2)

'custom' => array(
    'password.regex' => 'Password must contain at least one number and both uppercase and lowercase letters.'
)

3)

'custom' => array(
    'password.regex:((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).6,20)' => 'Password must contain at least one number and both uppercase and lowercase letters.'
)

这些都没有奏效。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

我可以改用这个方法来解决这个问题:

'custom' => array(
    'password' => array(
        'regex' => 'Password must contain at least one number and both uppercase and lowercase letters.'
    )
)

但我很想知道为什么如果有人碰巧知道其他方法之一不起作用...?

【讨论】:

感谢分享,但请告诉我您在哪里进行了自定义验证?在控制器或请求文件中?【参考方案2】:

看来 laravel 7 解决了这个问题:

        $messages = [
            'email.required' => 'We need to know your e-mail address!',
            'password.required' => 'How will you log in?',
            'password.confirmed' => 'Passwords must match...',
            'password.regex' => 'Regex!'
        ];
        $rules = [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => [
                'required',
                'string',
                'min:7',
                'confirmed',
                'regex:/^.*(?=.3,)(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/'
            ]
        ];
        return Validator::make($data, $rules, $messages );

【讨论】:

Laravel 自定义验证规则

...关制作自定义消息的信息,但不了解规则。我想使用正则表达式来验证数据。^120\\d11$这是我的正则表达式。我是Laravel的新手,这就是为什么现在无法想象如何做到这一点。在$this-& 查看详情

Laravel Spark 中的自定义验证消息

】LaravelSpark中的自定义验证消息【英文标题】:CustomValidationMessageinLaravelSpark【发布时间】:2019-11-0120:45:54【问题描述】:需要更改LaravelSpark中的验证消息,我在注册表单中添加新字段但需要更改显示的消息。普通的Laravel我可以... 查看详情

Laravel 扩展规则消息

】Laravel扩展规则消息【英文标题】:LaravelExtendRuleMessage【发布时间】:2017-07-0806:29:43【问题描述】:我在Laravel中使用“唯一”验证规则,该规则目前在FormRequest中。我正在尝试自定义从此规则返回的消息,但在Laravel生成此消息... 查看详情

在 Laravel 验证正则表达式规则中验证纬度/经度 - preg_match():未找到结束分隔符“/”[重复]

】在Laravel验证正则表达式规则中验证纬度/经度-preg_match():未找到结束分隔符“/”[重复]【英文标题】:Validatinglatitude/longitudeinLaravelvalidationregexrule-preg_match():Noendingdelimiter\'/\'found[duplicate]【发布时间】:2018-04-2110:11:30【问题描述... 查看详情

在 Laravel 中验证数组时,如何使用数组项规则添加验证自定义消息?

】在Laravel中验证数组时,如何使用数组项规则添加验证自定义消息?【英文标题】:HowtoaddvalidationcustommessageswitharrayitemsruleswhenvalidatingarrayinLaravel?【发布时间】:2019-03-2711:04:53【问题描述】:我有自定义验证码:$this->validate($r... 查看详情

如何根据 Angular 2 中的自定义验证规则显示错误消息?

】如何根据Angular2中的自定义验证规则显示错误消息?【英文标题】:HowtodisplayerrormessagebasedoncustomvalidationrulesinAngular2?【发布时间】:2016-11-2817:59:35【问题描述】:我正在使用模板驱动的方法在Angular2中构建表单,并且我已经成... 查看详情

正则表达式验证规则,以避免特殊字符不适用于 laravel 中的文本字段

】正则表达式验证规则,以避免特殊字符不适用于laravel中的文本字段【英文标题】:Regexvalidationruletoavoidspecialcharactersnotapplyingforthetextfieldinlaravel【发布时间】:2020-07-2011:10:30【问题描述】:在我的laravel应用程序中,我有一个注... 查看详情

使用带有附加参数的自定义规则验证 Laravel 中的数组

】使用带有附加参数的自定义规则验证Laravel中的数组【英文标题】:ValidatingarrayinLaravelusingcustomrulewithadditionalparameter【发布时间】:2019-07-2414:42:24【问题描述】:我正在使用Laravel5.7,我需要使用2个输入(前缀+数字)来验证电话... 查看详情

如何使唯一数组的自定义验证规则依赖于其他字段 laravel

】如何使唯一数组的自定义验证规则依赖于其他字段laravel【英文标题】:HowtomakeCustomValidationruleforuniqueArraydependentonotherfieldlaravel【发布时间】:2019-08-1203:53:19【问题描述】:我正在开发Laravel5.6。我有4个依赖的唯一列,但不知道... 查看详情

在 Laravel 5 中使用表单请求验证时如何添加自定义验证规则

】在Laravel5中使用表单请求验证时如何添加自定义验证规则【英文标题】:HowaddCustomValidationRuleswhenusingFormRequestValidationinLaravel5【发布时间】:2015-05-0120:32:39【问题描述】:我在laravel5中使用表单请求验证方法来验证请求。我想用... 查看详情

Laravel 验证正则表达式,视图中断

】Laravel验证正则表达式,视图中断【英文标题】:Laravelvalidationregex,breaksinview【发布时间】:2013-09-2813:49:01【问题描述】:所以,我的模型中有以下规则:publicstatic$rules=array(\'name\'=>\'required|alpha_dash|unique:subsidiaries\',\'internal_num... 查看详情

proengsoft/laravel-jsvalidation 如何使用自定义规则消息?

】proengsoft/laravel-jsvalidation如何使用自定义规则消息?【英文标题】:proengsoft/laravel-jsvalidationHowtouseCustomRuleMessages?【发布时间】:2018-08-3018:48:13【问题描述】:我将proengsoft/laravel-jsvalidation与我通过服务提供者中的Validator::extend(...... 查看详情

Laravel 5.4 - 如何为同一个自定义验证规则使用多个错误消息

】Laravel5.4-如何为同一个自定义验证规则使用多个错误消息【英文标题】:Laravel5.4-Howtousemultipleerrormessagesforthesamecustomvalidationrule【发布时间】:2017-11-2512:54:32【问题描述】:为了重用代码,我在一个名为ValidatorServiceProvider的文件... 查看详情

工作正则表达式在 laravel 验证中不起作用

】工作正则表达式在laravel验证中不起作用【英文标题】:Workingregexnotworkinlaravelvalidation【发布时间】:2019-03-2817:19:59【问题描述】:我有自定义正则表达式用于验证社交网站中的用户个人资料网址:/(?:https:\\/\\/)?(?:http:\\/\\/)?(?:ww... 查看详情

Laravel 自定义验证消息参数

】Laravel自定义验证消息参数【英文标题】:Laravelcustomvalidationmessageparameter【发布时间】:2016-01-2913:35:23【问题描述】:我正在使用laravel5.1。我有一个summernotejs表单元素。我已经成功创建了一个自定义验证规则,它采用从表单输... 查看详情

jQuery Validate Plugin - 如何创建一个简单的自定义规则?

...间】:2010-09-1911:04:07【问题描述】:如何使用不使用正则表达式的jQueryValidate插件(使用addMethod)创建简单的自定义规则?例如,什么函数会创建一个规则,仅当一组复选框中的至少一个被选中时才进行验证?【问题 查看详情

向自定义正则表达式添加动态错误消息

】向自定义正则表达式添加动态错误消息【英文标题】:Adddynamicerrormessagetocustomregularexpression【发布时间】:2019-12-0504:04:10【问题描述】:我已经建立了一个自定义的正则表达式类。我还有一个数据库值,它是我不希望在我的Web... 查看详情

thinkphp验证器正则常用规则

...置规则为require、email之类的,其实这些本身也是属于正则表达式验证方式,只是系统内置定义了一些常用的正则表达式而已。这些内置的正则表达式的定义可以参考model类的regex方法,内置支持的正则定义包括:require字段必须、e... 查看详情