仅针对字母的 laravel 验证规则
Posted
技术标签:
【中文标题】仅针对字母的 laravel 验证规则【英文标题】:laravel validation rule for only letters 【发布时间】:2016-11-30 14:42:01 【问题描述】:我正在尝试添加一个验证规则以仅接受字母。我正在使用regex
规则,但它仍然无法正常工作。下面是我的代码:
/**
* Validate request/input
**/
$this->validate($request, [
'name' => 'required|regex:/^[\pL\s\-]+$/u|max:255|unique:users,name,'.$user->id,
'email' => 'required|email|max:255|unique:users,email,'.$user->id,
]);
每当我输入像Foo Foo
这样的名字时,它仍然可以成功注册。
知道我做错了什么吗?
【问题讨论】:
试试'name' => array('required','regex:/^[\pL\s-]+$/u', 'max:255', 'unique:users,name,'.$user->id),
@WiktorStribiżew 没有用。
如果你删除/u
?只需使用'regex:/^[\pL\s-]+$/'
?
@WiktorStribiżew 没有用....
一切正常,非常感谢@WiktorStribiżew
【参考方案1】:
我认为你的正则表达式失败了,我在 Regexr 上尝试过,但无法正常工作,试试这个:
'name' => 'required|regex:/^[a-zA-Z]+$/u|max:255|unique:users,name,'.$user->id,
让我知道你过得怎么样。
这里只有正则表达式:^[a-zA-Z]+$
【讨论】:
有趣,我刚刚注意到你在结尾处连接:$user->id,请问你为什么要这样做,因为 Regexr 显示这个正则表达式正在工作:/ 我在错误的视图/控制器 lmfaoooo 下工作,这有效。 ^.^ 它发生了。不错的收获:p 注意:字面上只支持字母字符串,不允许有空格。例如,“Börje Henriksson”会导致验证失败。【参考方案2】:根据laravel documentation,您可以使用:
alpha
用于完全字母字符
alpha_dash
用于字母数字字符,以及破折号和下划线,最后是
alpha_num
用于完全字母数字字符。
【讨论】:
注意:不支持 UTF-8 的规则 @PatricNox 你可以自己做帮手,搜索一下我已经在 Github 上回答过了,你只需要知道你的字母表以上是关于仅针对字母的 laravel 验证规则的主要内容,如果未能解决你的问题,请参考以下文章