diff --git a/src/Validation.php b/src/Validation.php index 94fe854..c98640b 100644 --- a/src/Validation.php +++ b/src/Validation.php @@ -344,7 +344,12 @@ protected function parseRule($rule) { $exp = explode(':', $rule, 2); $rulename = $exp[0]; - $params = isset($exp[1])? explode(',', $exp[1]) : []; + if ($rulename !== 'regex') { + $params = isset($exp[1])? explode(',', $exp[1]) : []; + } else { + $params = [$exp[1]]; + } + return [$rulename, $params]; } diff --git a/tests/ValidatonTest.php b/tests/ValidatonTest.php new file mode 100644 index 0000000..9f82e70 --- /dev/null +++ b/tests/ValidatonTest.php @@ -0,0 +1,69 @@ +getMethod('parseRule'); + $method->setAccessible(true); + + $validation = new Validation(new Validator(), [], []); + + $result = $method->invokeArgs($validation, [$rules]); + $this->assertSame($expectedResult, $result); + } + + /** + * @return array + */ + public function parseRuleProvider() + { + return [ + [ + 'email', + [ + 'email', + [], + ], + ], + [ + 'min:6', + [ + 'min', + ['6'], + ], + ], + [ + 'uploaded_file:0,500K,png,jpeg', + [ + 'uploaded_file', + ['0', '500K', 'png', 'jpeg'], + ], + ], + [ + 'same:password', + [ + 'same', + ['password'], + ], + ], + [ + 'regex:/^([a-zA-Z\,]*)$/', + [ + 'regex', + ['/^([a-zA-Z\,]*)$/'], + ], + ], + ]; + } +}