3

对于我的学校项目,我尝试在 Zend 中制作一个表格。

我想插入一个验证器,第一个字母必须是大写字母。

我应该在这段代码中进行哪些更改才能使其正常工作?

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

如果有人可以帮助我解决这个问题,请提前致谢!

4

2 回答 2

3

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

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)
于 2011-07-13T14:42:08.420 回答
0

您始终可以将正则表达式验证器用于此类事情。我有点忙,所以请随时介入并提供完整的代码示例。

哦,有人刚刚做了

于 2011-07-13T14:49:58.693 回答