I have a validator that is supposed to ensure that the input string has no character other than case-insensitive a-z, or accented characters like e-acute, or space.
It returns false when you pass it "josé" by submitting an HTML form to my controller action with a browser, but when you test it against same string 'josé' in a command line script, it returns true. I have tested with Opera 9.26 and Firefox 2.0.0.12 on a Fedora 7 system. It might be worth noting that I have used the same regex in other web environments, and it has worked. When I echo back the form input to the browser I see that josé becomes josÃ(c) so I am guessing we have a charset issue. Any tips as to how to fix it? Thanks! class Model_Validator_FirstName extends Zend_Validate_Abstract { const INVALID_CHARACTERS = 'invalidCharacters'; protected $pattern = "/[^a-zA-Z\xC0-\xFF ]/"; protected $_messageTemplates = array( 'invalidCharacters' => 'Firstname contains illegal characters' ); function isValid($name) { if (preg_match($this->pattern,$name)) { $this->_error(self::INVALID_CHARACTERS); return false; } return true; } } -- David Mintz http://davidmintz.org/ The subtle source is clear and bright The tributary streams flow through the darkness