/** * Ensures that the allowWhiteSpace option works as expected * * @return void */ public function testAllowWhiteSpace() { $this->_filter->setAllowWhiteSpace(true); if (!self::$_unicodeEnabled) { // POSIX named classes are not supported, use alternative a-zA-Z match $valuesExpected = array('abc123' => 'abc123', 'abc 123' => 'abc 123', 'abcxyz' => 'abcxyz', 'AZ@#4.3' => 'AZ43', '' => '', "\n" => "\n", " \t " => " \t "); } if (self::$_meansEnglishAlphabet) { //The Alphabet means english alphabet. $valuesExpected = array('a B 45' => 'a B 5', 'z3 x' => 'z3x'); } else { //The Alphabet means each language's alphabet. $valuesExpected = array('abc123' => 'abc123', 'abc 123' => 'abc 123', 'abcxyz' => 'abcxyz', 'če2 t3ně' => 'če2 t3ně', 'gr z5e4gżółka' => 'gr z5e4gżółka', 'Be3l5 gië' => 'Be3l5 gië', '' => ''); } $filter = $this->_filter; foreach ($valuesExpected as $input => $output) { $this->assertEquals($output, $result = $filter($input), "Expected '{$input}' to filter to '{$output}', but received '{$result}' instead"); } }
/** * Returns true if and only if $value contains only alphabetic and digit characters * * @param string $value * @return boolean */ public function isValid($value) { if (!is_string($value) && !is_int($value) && !is_float($value)) { $this->_error(self::INVALID); return false; } $this->_setValue($value); if ('' === $value) { $this->_error(self::STRING_EMPTY); return false; } if (null === self::$_filter) { self::$_filter = new \Zend\Filter\Alnum(); } self::$_filter->setAllowWhiteSpace($this->allowWhiteSpace); if ($value != self::$_filter->filter($value)) { $this->_error(self::NOT_ALNUM); return false; } return true; }