diff --git a/forms/EmailField.php b/forms/EmailField.php index a6920f381..b1593bcb2 100644 --- a/forms/EmailField.php +++ b/forms/EmailField.php @@ -1,54 +1,59 @@ 'email' + 'type' => 'email', ) ); } /** - * Validates for RFC 2822 compliant email adresses. - * + * Validates for RFC 2822 compliant email addresses. + * * @see http://www.regular-expressions.info/email.html * @see http://www.ietf.org/rfc/rfc2822.txt - * + * * @param Validator $validator - * @return String + * + * @return string */ public function validate($validator) { $this->value = trim($this->value); - $pcrePattern = '^[a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*' - . '@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$'; + $pattern = '^[a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$'; - // PHP uses forward slash (/) to delimit start/end of pattern, so it must be escaped - $pregSafePattern = str_replace('/', '\\/', $pcrePattern); + // Escape delimiter characters. + $safePattern = str_replace('/', '\\/', $pattern); - if($this->value && !preg_match('/' . $pregSafePattern . '/i', $this->value)){ + if($this->value && !preg_match('/' . $safePattern . '/i', $this->value)) { $validator->validationError( $this->name, - _t('EmailField.VALIDATION', "Please enter an email address"), - "validation" + _t('EmailField.VALIDATION', 'Please enter an email address'), + 'validation' ); - return false; - } else{ - return true; - } - } + return false; + } + + return true; + } }