我想在yii中为我的字段定义验证

时间:2013-12-02 11:36:50

标签: validation yii pattern-matching

我想为我的字段定义验证: 所有数字除了零和两个 我可以定义我的模式吗? 什么意味着$和U,p和其他角色?

'pattern'=>'/^[\p{L}\s,0-9]+$/u'

3 个答案:

答案 0 :(得分:1)

过于复杂的正则表达对你没有任何好处。相反,利用not设置,这有效地为您反转模式:

public function rules() {
    return array(
        array('field_name','pattern'=>'/^[02]$/','not'=>true),
    );
}

答案 1 :(得分:0)

在模型中添加代码

public function rules()
{
    return array(
            array('field_name','match', 'pattern'=>'/^[^02]+$/u','message'=>'Invalid Number.'),
    );
}

答案 2 :(得分:0)

您使用模型规则

public function rules() {
    return array(
                   // your other rules
        array('fieldName', 'patternCheck'),
    );
}

public function patterCheck($attribute, $params){
    $pattern = '/^[\p{L}\s,0-9]+$/u';
    preg_match($pattern, $attribute->fieldName, $matches, PREG_OFFSET_CAPTURE);
    return $matches;
}

这将验证您的字段