one letter name-part in email address failed validation, eg. "x@egroupware.org"

This commit is contained in:
Ralf Becker 2018-02-05 15:30:56 +01:00
parent d1edc5f474
commit 5668f9b04a
3 changed files with 4 additions and 3 deletions

View File

@ -48,7 +48,7 @@ var et2_url = (function(){ "use strict"; return et2_textbox.extend(
* *
* Same preg is in Etemplate\Widget\Url PHP class! * Same preg is in Etemplate\Widget\Url PHP class!
*/ */
EMAIL_PREG: new RegExp(/^(([^\042',<][^,<]+|\042[^\042]+\042|\'[^\']+\'|"(?:[^"\\]|\\.)*")\s?<)?[^\x00-\x20()<>@,;:\042\[\]\x80-\xff]+[^.\s]@([a-z0-9ÄÖÜäöüß](|[a-z0-9ÄÖÜäöüß_-]*[a-z0-9ÄÖÜäöüß])\.)+[a-z]{2,}>?$/i), EMAIL_PREG: new RegExp(/^(([^\042',<][^,<]+|\042[^\042]+\042|\'[^\']+\'|"(?:[^"\\]|\\.)*")\s?<)?[^\x00-\x20()<>@,;:\042\[\]\x80-\xff]+[^.\s]?@([a-z0-9ÄÖÜäöüß](|[a-z0-9ÄÖÜäöüß_-]*[a-z0-9ÄÖÜäöüß])\.)+[a-z]{2,}>?$/i),
/** /**
* @memberOf et2_url * @memberOf et2_url
*/ */

View File

@ -42,7 +42,7 @@ class Url extends Etemplate\Widget
* *
* Same preg is in et2_widget_url Javascript class, but no \x00 allowed and /u modifier for utf8! * Same preg is in et2_widget_url Javascript class, but no \x00 allowed and /u modifier for utf8!
*/ */
const EMAIL_PREG = "/^(([^\042',<][^,<]+|\042[^\042]+\042|\'[^\']+\'|)\s?<)?[^\x01-\x20()<>@,;:\042\[\]]+[^.\s]@([a-z0-9ÄÖÜäöüß](|[a-z0-9ÄÖÜäöüß_-]*[a-z0-9ÄÖÜäöüß])\.)+[a-z]{2,}>?$/iu"; const EMAIL_PREG = "/^(([^\042',<][^,<]+|\042[^\042]+\042|\'[^\']+\'|)\s?<)?[^\x01-\x20()<>@,;:\042\[\]]+[^.\s]?@([a-z0-9ÄÖÜäöüß](|[a-z0-9ÄÖÜäöüß_-]*[a-z0-9ÄÖÜäöüß])\.)+[a-z]{2,}>?$/iu";
// allow private IP addresses (starting with 10.|169.254.|192.168.) too // allow private IP addresses (starting with 10.|169.254.|192.168.) too
//const URL_PREG = '_^(?:(?:https?|ftp)://)?(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(localhost)|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,})))(?::\d{2,5})?(?:/[^\s]*)?$_iuS'; //const URL_PREG = '_^(?:(?:https?|ftp)://)?(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(localhost)|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,})))(?::\d{2,5})?(?:/[^\s]*)?$_iuS';

View File

@ -68,6 +68,7 @@ class UrlEmailTest extends \EGroupware\Api\Etemplate\WidgetBaseTest
array('email@domain.name'), // .name is valid Top Level Domain name array('email@domain.name'), // .name is valid Top Level Domain name
array('email@domain.co.jp'), // Dot in Top Level Domain name also considered valid (use co.jp as example here) array('email@domain.co.jp'), // Dot in Top Level Domain name also considered valid (use co.jp as example here)
array('firstname-lastname@domain.com'), // Dash in address field is valid array('firstname-lastname@domain.com'), // Dash in address field is valid
array('x@egroupware.org'), // one letter name-part is valid, but failed validation before
// Supposedly valid, but we don't // Supposedly valid, but we don't
// array('"email"@domain.com'), // Quotes around email is considered valid // array('"email"@domain.com'), // Quotes around email is considered valid