diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cc1d801..8e93f1b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add support for Symfony 7 - Remove support of PHP 7.4 +### Fixed + +- Prevent letters as number + ## [3.9.3] - 2023-11-29 ### Added diff --git a/src/Form/DataTransformer/PhoneNumberToArrayTransformer.php b/src/Form/DataTransformer/PhoneNumberToArrayTransformer.php index 32f284e7..6c73586c 100644 --- a/src/Form/DataTransformer/PhoneNumberToArrayTransformer.php +++ b/src/Form/DataTransformer/PhoneNumberToArrayTransformer.php @@ -74,6 +74,10 @@ public function reverseTransform($value): ?PhoneNumber $util = PhoneNumberUtil::getInstance(); + if (preg_match('/\p{L}/u', $value['number'])) { + throw new TransformationFailedException('The number can not contain letters.'); + } + try { $phoneNumber = $util->parse($value['number'], $value['country']); } catch (NumberParseException $e) { diff --git a/src/Form/DataTransformer/PhoneNumberToStringTransformer.php b/src/Form/DataTransformer/PhoneNumberToStringTransformer.php index c203b5dc..44fbc09e 100644 --- a/src/Form/DataTransformer/PhoneNumberToStringTransformer.php +++ b/src/Form/DataTransformer/PhoneNumberToStringTransformer.php @@ -76,6 +76,10 @@ public function reverseTransform($value): ?PhoneNumber return null; } + if (preg_match('/\p{L}/u', $value)) { + throw new TransformationFailedException('The number can not contain letters.'); + } + try { return PhoneNumberUtil::getInstance()->parse($value, $this->defaultRegion); } catch (NumberParseException $e) {