13 09 2024

在 PHP 中,使用正则表达式来验证密码是一种常见做法。下面列出了一些常用的密码正则表达式及其说明:

2. 密码长度为 8 位以上,且必须包含大写字母、小写字母、数字和特殊字符

$regex = '/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#%^&*]).{8,}$/';
if (!preg_match($regex, $form['password'])) {
            $res['msg'] = '密码不符合要求,请重新填写';
            return json($res);
        }

2. 密码长度为 6 到 16 位,且必须包含英文、数字和特殊字符中的至少三种

$regex = '/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{6,16}$/';
if (!preg_match($regex, $form['password'])) {
            $res['msg'] = '密码不符合要求,请重新填写';
            return json($res);
        }

3. 密码长度为 8 到 16 位,且必须包含英文、数字或下划线中的至少两种

$regex = '/^(?=.*[a-zA-Z])(?=.*\d)[A-Za-z\d]{8,16}$|^(?=.*[a-zA-Z])(?=.*[_])[A-Za-z_]{8,16}$|^(?=.*\d)(?=.*[_])\d[_]{8,16}$/';
if (!preg_match($regex, $form['password'])) {
            $res['msg'] = '密码不符合要求,请重新填写';
            return json($res);
        }

4. 密码长度为 2 到 10 位,可以包含中文、数字、字母(区分大小写)和下划线

$regex = '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9_]{2,10}$/u';
if (!preg_match($regex, $form['password'])) {
            $res['msg'] = '密码不符合要求,请重新填写';
            return json($res);
        }

5. 密码长度为 6 到 16 位,可以包含英文、数字和特殊字符

$regex = '/^[A-Za-z\d\W_]{6,16}$/';
if (!preg_match($regex, $form['password'])) {
            $res['msg'] = '密码不符合要求,请重新填写';
            return json($res);
        }

可以根据实际需求选择合适的正则表达式,并进行相应的调整。这样可以确保密码具有足够的安全性。

延伸阅读
    发表评论