10000 add new validation regex option to match with official email spec · symfony/symfony@06bd46d · GitHub
[go: up one dir, main page]

Skip to content

Commit 06bd46d

Browse files
committed
add new validation regex option to match with official email spec
1 parent b527899 commit 06bd46d

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

‎src/Symfony/Component/Validator/Constraints/Email.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::IS_REPEATABLE)]
2626
class Email extends Constraint
2727
{
28+
public const VALIDATION_MODE_HTML5_ALLOW_NO_TLD = 'no-tld';
2829
public const VALIDATION_MODE_HTML5 = 'html5';
2930
public const VALIDATION_MODE_STRICT = 'strict';
3031
/**
@@ -35,6 +36,7 @@ class Email extends Constraint
3536
public const INVALID_FORMAT_ERROR = 'bd79c0ab-ddba-46cc-a703-a7a4b08de310';
3637

3738
public const VALIDATION_MODES = [
39+
self::VALIDATION_MODE_HTML5_ALLOW_NO_TLD,
3840
self::VALIDATION_MODE_HTML5,
3941
self::VALIDATION_MODE_STRICT,
4042
self::VALIDATION_MODE_LOOSE,

â 8000 €Žsrc/Symfony/Component/Validator/Constraints/EmailValidator.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@
2424
*/
2525
class EmailValidator extends ConstraintValidator
2626
{
27+
private const PATTERN_HTML5_ALLOW_NO_TLD = '/^[a-zA-Z0-9.!#$%&\'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/';
2728
private const PATTERN_HTML5 = '/^[a-zA-Z0-9.!#$%&\'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/';
2829
private const PATTERN_LOOSE = '/^.+\@\S+\.\S+$/';
2930

3031
private const EMAIL_PATTERNS = [
3132
Email::VALIDATION_MODE_LOOSE => self::PATTERN_LOOSE,
3233
Email::VALIDATION_MODE_HTML5 => self::PATTERN_HTML5,
34+
Email::VALIDATION_MODE_HTML5_ALLOW_NO_TLD => self::PATTERN_HTML5_ALLOW_NO_TLD,
3335
];
3436

3537
private string $defaultMode;

0 commit comments

Comments
 (0)
0