fix integer validation process

This commit is contained in:
notona 2017-02-20 12:18:18 +09:00
parent 971501551c
commit 7c990e39ef
2 changed files with 21 additions and 1 deletions

View File

@ -237,7 +237,7 @@ class Validator
*/ */
protected function validateInteger($field, $value) protected function validateInteger($field, $value)
{ {
return filter_var($value, \FILTER_VALIDATE_INT) !== false; return preg_match('/^-?([0-9])+$/i', $value);
} }
/** /**

View File

@ -110,6 +110,10 @@ class ValidateTest extends BaseTestCase
$v = new Validator(array('num' => '41243')); $v = new Validator(array('num' => '41243'));
$v->rule('integer', 'num'); $v->rule('integer', 'num');
$this->assertTrue($v->validate()); $this->assertTrue($v->validate());
$v = new Validator(array('num' => '-41243'));
$v->rule('integer', 'num');
$this->assertTrue($v->validate());
} }
public function testIntegerInvalid() public function testIntegerInvalid()
@ -117,6 +121,22 @@ class ValidateTest extends BaseTestCase
$v = new Validator(array('num' => '42.341569')); $v = new Validator(array('num' => '42.341569'));
$v->rule('integer', 'num'); $v->rule('integer', 'num');
$this->assertFalse($v->validate()); $this->assertFalse($v->validate());
$v = new Validator(array('num' => ' 41243'));
$v->rule('integer', 'num');
$this->assertFalse($v->validate());
$v = new Validator(array('num' => '+1231'));
$v->rule('integer', 'num');
$this->assertFalse($v->validate());
$v = new Validator(array('num' => '--1231'));
$v->rule('integer', 'num');
$this->assertFalse($v->validate());
$v = new Validator(array('num' => '0x3a'));
$v->rule('integer', 'num');
$this->assertFalse($v->validate());
} }
public function testLengthValid() public function testLengthValid()