Skip to content

Commit fe63592

Browse files
Amunakdg
authored andcommitted
Validator:: accepts the plus character as a valid option in numeric strings (#184)
1 parent 632465f commit fe63592

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

src/Utils/Validators.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ public static function isNumber($value): bool
178178
*/
179179
public static function isNumericInt($value): bool
180180
{
181-
return is_int($value) || is_string($value) && preg_match('#^-?[0-9]+\z#', $value);
181+
return is_int($value) || is_string($value) && preg_match('#^[+-]?[0-9]+\z#', $value);
182182
}
183183

184184

@@ -187,7 +187,7 @@ public static function isNumericInt($value): bool
187187
*/
188188
public static function isNumeric($value): bool
189189
{
190-
return is_float($value) || is_int($value) || is_string($value) && preg_match('#^-?[0-9]*[.]?[0-9]+\z#', $value);
190+
return is_float($value) || is_int($value) || is_string($value) && preg_match('#^[+-]?[0-9]*[.]?[0-9]+\z#', $value);
191191
}
192192

193193

tests/Utils/Validators.is().phpt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ test(function () {
5555
Assert::true(Validators::is('-1', 'numeric'));
5656
Assert::true(Validators::is('-1.5', 'numeric'));
5757
Assert::true(Validators::is('-.5', 'numeric'));
58+
Assert::true(Validators::is('+1', 'numeric'));
59+
Assert::true(Validators::is('+1.5', 'numeric'));
60+
Assert::true(Validators::is('+.5', 'numeric'));
5861
Assert::false(Validators::is('1e6', 'numeric'));
5962
Assert::true(Validators::is(1, 'numeric'));
6063
Assert::true(Validators::is(1.0, 'numeric'));
@@ -67,6 +70,9 @@ test(function () {
6770
Assert::true(Validators::is('-1', 'numericint'));
6871
Assert::false(Validators::is('-1.5', 'numericint'));
6972
Assert::false(Validators::is('-.5', 'numericint'));
73+
Assert::true(Validators::is('+1', 'numericint'));
74+
Assert::false(Validators::is('+1.5', 'numericint'));
75+
Assert::false(Validators::is('+.5', 'numericint'));
7076
Assert::false(Validators::is('1e6', 'numericint'));
7177
Assert::true(Validators::is(1, 'numericint'));
7278
Assert::false(Validators::is(1.0, 'numericint'));

0 commit comments

Comments
 (0)