From 7c990e39efe665b146f9bd87cf158b331b926f5f Mon Sep 17 00:00:00 2001 From: notona Date: Mon, 20 Feb 2017 12:18:18 +0900 Subject: [PATCH] fix integer validation process --- src/Valitron/Validator.php | 2 +- tests/Valitron/ValidateTest.php | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Valitron/Validator.php b/src/Valitron/Validator.php index 0e98596..f4fd6f2 100644 --- a/src/Valitron/Validator.php +++ b/src/Valitron/Validator.php @@ -237,7 +237,7 @@ class Validator */ protected function validateInteger($field, $value) { - return filter_var($value, \FILTER_VALIDATE_INT) !== false; + return preg_match('/^-?([0-9])+$/i', $value); } /** diff --git a/tests/Valitron/ValidateTest.php b/tests/Valitron/ValidateTest.php index 4a91b33..e3ae2b0 100644 --- a/tests/Valitron/ValidateTest.php +++ b/tests/Valitron/ValidateTest.php @@ -110,6 +110,10 @@ class ValidateTest extends BaseTestCase $v = new Validator(array('num' => '41243')); $v->rule('integer', 'num'); $this->assertTrue($v->validate()); + + $v = new Validator(array('num' => '-41243')); + $v->rule('integer', 'num'); + $this->assertTrue($v->validate()); } public function testIntegerInvalid() @@ -117,6 +121,22 @@ class ValidateTest extends BaseTestCase $v = new Validator(array('num' => '42.341569')); $v->rule('integer', 'num'); $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()