[BUGFIX] email validator
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Validation / Validator / EmailAddressValidator.php
index 938bac5..0953f22 100644 (file)
@@ -5,6 +5,9 @@
 *  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
 *  All rights reserved
 *
+*  This class is a backport of the corresponding class of FLOW3.
+*  All credits go to the v5 team.
+*
 *  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
@@ -25,8 +28,8 @@
 /**
  * Validator for email addresses
  *
- * @package TYPO3
- * @subpackage extbase
+ * @package Extbase
+ * @subpackage Validation\Validator
  * @version $Id$
  */
 class Tx_Extbase_Validation_Validator_EmailAddressValidator extends Tx_Extbase_Validation_Validator_AbstractValidator {
@@ -34,26 +37,17 @@ class Tx_Extbase_Validation_Validator_EmailAddressValidator extends Tx_Extbase_V
        /**
         * Checks if the given value is a valid email address.
         * If at least one error occurred, the result is FALSE.
-        * 
-        * The regexp is a modified version of the last one shown on
-        * http://www.regular-expressions.info/email.html
         *
         * @param mixed $value The value that should be validated
         * @return boolean TRUE if the value is valid, FALSE if an error occured
         */
        public function isValid($value) {
                $this->errors = array();
-               if(is_string($value) && preg_match('
-                               /
-                                       [a-z0-9!#$%&\'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+\/=?^_`{|}~-]+)*
-                                       @
-                                       (?:
-                                               (?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2}|aero|asia|biz|cat|com|edu|coop|gov|info|int|invalid|jobs|localdomain|mil|mobi|museum|name|net|org|pro|tel|travel)|
-                                               localhost|
-                                               (?:(?:\d{1,2}|1\d{1,2}|2[0-5][0-5])\.){3}(?:(?:\d{1,2}|1\d{1,2}|2[0-5][0-5]))
-                                       )
-                                       \b
-                               /ix', $value)) return TRUE;
+
+               if (is_string($value) && t3lib_div::validEmail($value)) {
+                       return TRUE;
+               }
+
                $this->addError('The given subject was not a valid email address.', 1221559976);
                return FALSE;
        }