Below is my rule for password:

return [
    'Password'                  => 'required|min:8|max:100|regex:[a-z{1}[A-Z]{1}[0-9]{1}]',
    'Password_confirmation'     => 'required|min:8|max:100|regex:[a-z{1}[A-Z]{1}[0-9]{1}]',
];

I am trying to add the rule such that it must have

  1. 至少一个小字符
  2. 至少一个大字符
  3. 至少一个号码
  4. 至少一个特殊字符
  5. min 8 chars

I tried this and it works required|confirmed|min:8|max:100|regex:/^[\w]{1,}[\W]{1,}$/, on a regex tester software . but not sure why it does not work in Laravel

Am I missing something ?

推荐答案

Use:

return [
    'password' => [
        'required',
        'confirmed',
        'min:8',
        'max:50',
        'regex:/^(?=.*[a-z|A-Z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$/',
    ]
];

首先,您不需要单独判断确认书.只需使用confirmed规则.

The expression you were using was invalid, and had nothing to do with what you wanted. I do suggest you do some research on regular expressions.

由于上面显示的表达式使用管道(|),因此可以使用数组指定规则.

Edit:您也可以使用this expression,它似乎已经过更彻底的测试.

/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/

Laravel相关问答推荐

查询Laravel中的图形

如何在控制器中获取所需参数?

Laravel AppServiceProvider 中的代码在通过 DeployHQ 部署时停止 Composer 和构建

通过 laravel 中的 url 传递多个字符串作为参数以从数据库中删除特定数据

Laravel 验证 - 不同的属性规范

如何自定义密码确认不匹配.错误信息?

Laravel Eloquent - 随叫随到的加密/解密数据

在 laravel 中动态更改时区

判断 Laravel 中是否存在唯一索引键

你如何找到 Laravel 外观背后的底层类?

Laravel Eloquent Pluck 不丢失密钥

在 laravel 6.0 中未定义命令ui

使用 Laravel 将两个模型合并到一个分页查询中,并带有Eager加载的关系

扩展 Eloquent 的类的构造函数

脚本 php artisan clear-compiled 处理 pre-update-cmd 事件返回错误(Laravel 4.1 升级)

Laravel:在另一个控制器中加载方法而不更改 url

在 Laravel artisan 命令中使用详细

在 laravel Passport 客户端应用程序中使用访问令牌获取用户数据

Laravel 5 Illuminate\Http\Request 的方法不允许静态调用

找不到 HOME 环境 -- 扩展 `~'