【问题标题】:laravel validation rule for only letters仅针对字母的 laravel 验证规则
【发布时间】: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:/^[\p{L}\s-]+$/u', 'max:255', 'unique:users,name,'.$user->id),
  • @WiktorStribiżew 没有用。
  • 如果你删除/u?只需使用'regex:/^[\p{L}\s-]+$/'?
  • @WiktorStribiżew 没有用....
  • 一切正常,非常感谢@WiktorStribiżew

标签: php regex laravel


【解决方案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 上回答过了,你只需要知道你的字母表
猜你喜欢
  • 2022-01-04
  • 2015-02-21
  • 1970-01-01
  • 2020-06-09
  • 2016-12-17
  • 2020-06-25
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多