对于我的学校项目,我尝试用Zend制作表格。

我想插入一个验证器,即首字母必须为大写字母。

为了使这项工作有效,我应该在这段代码中进行哪些更改?

        $voornaam = $this->createElement('text', 'voornaam');
    $voornaam->setLabel('Voornaam:')
            ->setAttrib('size', 50)->addValidator('StringLength', false,array(2,30))
                ->setRequired(true);


如果有人可以帮助我,请提前谢谢!

最佳答案

也许这个自定义验证器会有所帮助:

class My_Validate_FirstCapital extends Zend_Validate_Abstract {

    const CAPITAL = 'capital';

    protected $_messageTemplates = array(
        self::CAPITAL => "First letter is not capital"
    );

    public function isValid($value, $context = null) {

        if ($value != ucfirst($value)) {
            $this->_error(self::CAPITAL);
            return false;
        }

        return true;
    }
}


我没有测试,但应该可以。

另一种方法是使用Zend_Validate_Regex,例如

//match first capital letter
$validator = new Zend_Validate_Regex(array('pattern' => '/^[A-Z]/'));
// and add it to your element, ->addValidator($validator)

09-25 16:19