我正在尝试在我的用户模型中添加验证,以使用正则表达式验证电子邮件。
但是,它在第一个撇号处吐出一个假人。
'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])?)*$/',
我正在尝试在我的用户模型中添加验证,以使用正则表达式验证电子邮件。
但是,它在第一个撇号处吐出一个假人。
'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])?)*$/',
您是否尝试过“电子邮件”验证规则?
'email' => 'required|email|unique:users,email'
正如对 SO 上这个问题的回答所说,没有简单的正则表达式来验证电子邮件地址。使用您的 RegEx 可能会捕获有效地址(尽管这只是我的猜测)。使用email
-validation-rule 将是我的首选。
但你是对的,这首先只是服务器端,如果你忽略使用输入和错误消息将用户重定向回来..
在客户端,您将有一些选择。第一个是简单地依赖浏览器验证中的构建,通过将相应的输入字段声明为电子邮件地址,无论如何您都应该这样做:
{{ Form::email($name, $value = null, $attributes = array()) }}
另一种更高级的方法是创建某种帮助程序,以使用相同的验证规则通过 Ajax 检查键入的输入并返回错误消息或某事。相似的。例如,这可能是通往您的模型资源的附加路线。这样,您将保持稳定和一致。