{
public static function isValidName($s, $max_length=50)
{
- if (!is_string($s))
- return false;
- if ( (strlen($s)==0) || (strlen($s)>$max_length) )
- return false;
- if ( is_numeric($s[0]))
- return false;
- if (!preg_match('/^[a-zA-Z0-9_]+$/', $s ))
- return false;
- return true;
+ return is_string($s) && preg_match('/^[a-zA-Z_][a-zA-Z0-9_]{0,'.($max_length-1).'}$/', $s) === 1;
}
public static function isEmail($value)
$this->assertEquals('goods/thumbs/image.gif', IPF_Utils::insertDirectory('goods/image.gif', 'thumbs'));
$this->assertEquals('thumbs/image.gif', IPF_Utils::insertDirectory('image.gif', 'thumbs'));
}
+
+ public function testIsValidName()
+ {
+ $this->assertFalse(IPF_Utils::isValidName(3));
+ $this->assertFalse(IPF_Utils::isValidName(array()));
+ $this->assertFalse(IPF_Utils::isValidName((object)array()));
+ $this->assertFalse(IPF_Utils::isValidName(''));
+ $this->assertFalse(IPF_Utils::isValidName('abc', 2));
+ $this->assertFalse(IPF_Utils::isValidName('4ever'));
+ $this->assertFalse(IPF_Utils::isValidName('+'));
+ $this->assertFalse(IPF_Utils::isValidName('-'));
+ $this->assertFalse(IPF_Utils::isValidName('not a valid name'));
+ $this->assertTrue(IPF_Utils::isValidName('AbstractFactoryBean'));
+ $this->assertTrue(IPF_Utils::isValidName('th1s_1s_a_valid_nam3'));
+ $this->assertTrue(IPF_Utils::isValidName('_'));
+ }
}