如何使用Laravel在文本字段中验证倍数是否正确?
示例1:
3封电子邮件很好,因此返回真
示例2:
前2封电子邮件正常,但3封不正确返回假
目前,仅验证单个电子邮件的代码
public function rules()
{
return [
'emails' => 'required|email'
];
}
谢谢。
PS:电子邮件数量可以变化(1到N)
答案 0 :(得分:1)
在这种情况下,您可以使用正则表达式验证:
public function rules()
{
return [
'emails' => ['required','regex:/^(\s?[^\s,]+@[^\s,]+\.[^\s,]+\s?)*(\s?[^\s,]+@[^\s,]+\.[^\s,]+)$/g']
];
}
答案 1 :(得分:1)
扩展一个名为“电子邮件”的新验证器,该验证器可扩展您的价值并分别验证每封电子邮件。
一个很好的解决方案可以在这里找到:https://stackoverflow.com/a/29455516/405217
答案 2 :(得分:0)
您如何发布请求?
如果您使用的是javascript / ajax,则可以在发送前先拆分电子邮件字段,然后将其放入三个不同的字段,例如email []。
然后,您可以在控制器中执行类似的操作
$validator = Validator::make($request->all(), [
'email.*' => 'required|email',
],[
'email.*.email' => 'In case you are wondering how to set error messages for this kind of validation'
]);
如果您不使用Javascript,则可以考虑使用多个字段或编写@TobiasK建议的自定义验证