CakePHP 3正则表达式验证 [英] CakePHP 3 regex validation

查看:74
本文介绍了CakePHP 3正则表达式验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在自定义验证规则中进行正则表达式,以允许除数字以外的任何字符,但无法使用。

I'm trying to do a regex in a custom validation rule to allow any character except numbers but can't get working.

public function validationDefault(Validator $validator)
{        
        $validator
            ->requirePresence('username')
            ->notEmpty('username', 'A username is required.')
            ->alphaNumeric('username', 'A username must be alphanumeric.')  
            ->add('username', 'validChars',[
                //'rule' => ['custom', '([0-9])'], // PASSED - Excepts anything but must have a number.
                'rule' => ['custom', '([^0-9])'], // FAILED - Excepts anything but NOT a number.
                'message' => 'Excepts anything except a number.'
            ]) 
            ->requirePresence('password')
            ->notEmpty('password', 'A password is required.');

            return $validator;
}

感谢您的帮助。
Z。

Thanks for any help. Z.

推荐答案

使用带有匿名函数的自定义验证规则

Use a custom validation rule, with an anonymous function

public function validationDefault(Validator $validator)
{        
    $validator
        ->requirePresence('username')
        ->notEmpty('username', 'A username is required.')
        ->alphaNumeric('username', 'A username must be alphanumeric.')  
        ->add('username', 'validChars',[ 
            'rule' => function ($value, $context) {
                return !preg_match('/[0-9]/', $value); //Return true if no number is present in the value     
            },
            'message' => 'Excepts anything except a number.'
        ]) 
        ->requirePresence('password')
        ->notEmpty('password', 'A password is required.');

        return $validator;
}

这篇关于CakePHP 3正则表达式验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆