Laravel 电子邮件和正则表达式验证无效
Laravel Validation of email and regex not working
问题
我正在尝试使用 Laravel 内置验证来验证表单。我想确保电子邮件中只有一个 .edu。但是,Laravel 继续抛出 preg_match(): No ending delimiter '/' found
错误。我听说这与管道分隔符而不是数组分隔符有关,但我不确定这是什么意思/如何修复它。我的代码如下。
$validator = Validator::make(Input::all(),
array(
'email' => 'Required|Max:50|Email|Unique:users|Regex:/(\.edu(\.[a-z]+)?|\.ac\.[a-z]+)$/',
'first-name' => 'required|max:20|min:3|',
'last-name' => 'required|max:30|min:3|',
'username' => 'required|max:30|min:3|unique:users|',
'city' => '',
'state' => '',
'password-init' => 'required|min:6|AlphaNum',
'password-check', 'required|min:6|AlphaNum|same:password-init'
)
);
如有任何帮助,我们将不胜感激
谢谢!
由于您使用竖线 |
来分隔不同的验证规则,Laravel 在看到正则表达式中间的竖线时会感到困惑。所以像这样分解 "email" 规则:
$validator = Validator::make(Input::all(),
array(
'email' => array(
'required',
'max:50',
'email',
'unique:users',
'regex:/(\.edu(\.[a-z]+)?|\.ac\.[a-z]+)$/'
),
'first-name' => 'required|max:20|min:3|',
...
这就是它在文档中谈论数组而不是管道时的意思:
http://laravel.com/docs/4.2/validation#rule-regex
问题
我正在尝试使用 Laravel 内置验证来验证表单。我想确保电子邮件中只有一个 .edu。但是,Laravel 继续抛出 preg_match(): No ending delimiter '/' found
错误。我听说这与管道分隔符而不是数组分隔符有关,但我不确定这是什么意思/如何修复它。我的代码如下。
$validator = Validator::make(Input::all(),
array(
'email' => 'Required|Max:50|Email|Unique:users|Regex:/(\.edu(\.[a-z]+)?|\.ac\.[a-z]+)$/',
'first-name' => 'required|max:20|min:3|',
'last-name' => 'required|max:30|min:3|',
'username' => 'required|max:30|min:3|unique:users|',
'city' => '',
'state' => '',
'password-init' => 'required|min:6|AlphaNum',
'password-check', 'required|min:6|AlphaNum|same:password-init'
)
);
如有任何帮助,我们将不胜感激 谢谢!
由于您使用竖线 |
来分隔不同的验证规则,Laravel 在看到正则表达式中间的竖线时会感到困惑。所以像这样分解 "email" 规则:
$validator = Validator::make(Input::all(),
array(
'email' => array(
'required',
'max:50',
'email',
'unique:users',
'regex:/(\.edu(\.[a-z]+)?|\.ac\.[a-z]+)$/'
),
'first-name' => 'required|max:20|min:3|',
...
这就是它在文档中谈论数组而不是管道时的意思: http://laravel.com/docs/4.2/validation#rule-regex