PHP - 基于正则表达式生成字符串

时间:2013-01-09 01:55:33

标签: php

我想根据我的正则表达式生成一个字符串。

此功能的目的是当有人忘记密码并填写“电子邮件新密码”表单时,我会生成一个随机密码,通过电子邮件发送给他们。这个新密码必须满足我的正则表达式的条件。

这是我的正则表达式:

'/.*^(?=.{6,})(?=.*[A-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W).*$/'

2 个答案:

答案 0 :(得分:3)

你看过Hoa\Regex library了吗?它使用各向同性随机方法生成基于正则表达式的字符串。

答案 1 :(得分:1)

试试这个。不需要混淆正则表达式:

function random_password( $length = 8 ) {
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-=+;:,.?";
    $password = substr( str_shuffle( $chars ), 0, $length );
    return $password;
}