当前位置: 首页 > 知识库问答 >
问题:

如何在laravel验证器中实现正则表达式

仉英朗
2023-03-14

我正在用PHP通过Laravel制作一个员工管理API。首先,如果论坛上已经有人问过这个问题,我很抱歉,但是我还没有找到我需要的确切答案。问题是我想通过验证器中的正则表达式来验证密码。我不知道这是否是正确的方法,如果是的话,如果有人能告诉我验证密码的正确方法,我将不胜感激。非常感谢。

$validator = Validator::make(json_decode($req->getContent(), true), [
        'name' => 'required',
        'puesto' => 'required',
        'password' => 'required|regex:/(?=.*[a-z])(?=*[A-Z])(?=.*[0-9])(?=.*[A-Za-z0-9]).{6,}/',
        'email' => 'required|unique:users',
        'salario' => 'required',
        'biografia' => 'required',
    ]);

共有1个答案

施知
2023-03-14

跟随

'password' => 'required|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$/'

您可以根据需要添加长度

更多信息:https://laravel.com/docs/6.x/validation#rule-正则表达式

您还可以使用自定义验证规则

<?php

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class StrongPassword implements Rule
{
    public function passes($attribute, $value)
    {
        return preg_match(
            "/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*(_|[^\w])).+$/",
            $value
        );
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        return 'The password does not satisfy strong password policy.';
    }
}

使用epx:

'password' => ['min:8', new StrongPassword]
 类似资料:
  • 问题内容: 我想在PHP中测试正则表达式的有效性,最好在使用前进行测试。这样做的唯一方法是实际尝试a 并查看是否返回吗? 有没有更简单/正确的方法来测试有效的正则表达式? 问题答案: 正如用户 pozs 所说,还应 考虑在测试环境中 放在 preg_match() () 前面, 以防止发出警告或通知。 要验证RegExp只需对其运行 (无需知道您要预先测试的数据) 。如果返回显式false(),则

  • 问题内容: 我正在Google App Engine上构建应用程序。我是Python的新手,在过去3天里,我一直对下面的问题problem之以鼻。 我有一个代表RSS Feed的类,在这个类中,我有一个名为setUrl的方法。输入此方法的是URL。 我正在尝试使用re python模块来验证RFC 3986 Reg- ex(http://www.ietf.org/rfc/rfc3986.txt)

  • 本文向大家介绍如何在C#中使用正则表达式验证URL?,包括了如何在C#中使用正则表达式验证URL?的使用技巧和注意事项,需要的朋友参考一下 要进行验证,您需要检查协议。 这样,您需要检查.com,.in,.org等。 为此,请使用以下正则表达式- 以下是代码- 示例 输出结果

  • 主要内容:标签属性,JSF验证整数范围实例标签用于将字符串值验证为所需格式。 以下代码显示如何使用标记。 标签属性 属性 说明 pattern 格式化模式 JSF验证整数范围实例 打开 NetBeans IDE 创建一个Web工程:ValidateRegularExpression,其目录结构如下所示 - 创建以下文件代码,文件:index.xhtml 的代码内容如下所示 - 文件:result.xhtml 的代码内容如下所示 - 文件:

  • 我有以下用于javascript密码验证的正则表达式: 正则表达式规则是: 12-25个字符 至少有一个大写字母 至少有一个小写字母 至少有一个数字 至少有一个特殊字符:!#$%()*,-./:;=?@[]^ `{124;}~ 然而,正则表达式似乎不起作用。它匹配任何字符。我该怎么解决这个问题?

  • 问题内容: 有人有用于验证网址的正则表达式(不是在文本段落中找到它们)吗?最好使用JavaScript代码段。 问题答案: 实际的URL语法非常复杂,并且很难在正则表达式中表示。那里大多数看起来简单的正则表达式都会给出许多错误的否定和错误的肯定,但即使最终的结果并不好。 加上这些天,您通常都希望允许使用IRI和老式的URI,因此我们可以链接到有效地址,例如: 我只会做简​​单的检查:它是否以一个已