0

次の正規表現を使用して、少なくとも 1 つの大文字、1 つの小文字、1 つの数字、1 つの非英数字 (特殊文字)、および最小限の8文字の。

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9]).{8,}$

Rubularで見られるように、正規表現は機能しています。Model_Auth_Userを拡張する Kohana の で使用しているコードを次に示しますORM

public function rules() {
    return array(
        'password' => array(
            array('not_empty'),
            array('min_length', array(':value', 8)),
            array('regex', array(':value', '/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9]).{8,}$/'))
        )
    );
}

ただし、新しいユーザー アカウントを作成するとき、または既存のユーザー アカウントのパスワードを変更するとき、この正規表現は完全に無視されるようです。ただし、上記min_lengthの行からは正常に機能しています!

test8文字未満なのでパスワードとして使用testing123できなくなりますが、エラーメッセージは表示されません。

なぜこれが起こっているのか、それを回避する方法はありますか?

4

1 に答える 1