1

我正在尝试在我的用户模型中添加验证,以使用正则表达式验证电子邮件。

但是,它在第​​一个撇号处吐出一个假人。

'email' => 'required|regex:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/',
4

2 回答 2

3

您是否尝试过“电子邮件”验证规则?

'email' => 'required|email|unique:users,email'

http://laravel.com/docs/4.2/validation#rule-email

于 2015-01-27T21:32:59.220 回答
1

正如对 SO 上这个问题的回答所说,没有简单的正则表达式来验证电子邮件地址。使用您的 RegEx 可能会捕获有效地址(尽管这只是我的猜测)。使用email-validation-rule 将是我的首选。

但你是对的,这首先只是服务器端,如果你忽略使用输入和错误消息将用户重定向回来..

在客户端,您将有一些选择。第一个是简单地依赖浏览器验证中的构建,通过将相应的输入字段声明为电子邮件地址,无论如何您都应该这样做:

{{ Form::email($name, $value = null, $attributes = array()) }}

另一种更高级的方法是创建某种帮助程序,以使用相同的验证规则通过 Ajax 检查键入的输入并返回错误消息或某事。相似的。例如,这可能是通往您的模型资源的附加路线。这样,您将保持稳定和一致。

于 2015-01-28T06:55:00.880 回答