From e224b002c08968ea2085c260a316f4357b81573e Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Wed, 12 Jan 2011 13:31:55 -0500 Subject: [PATCH] Missed some replacements in previous commit... --- program/js/common.js | 32 ++++++++++++++++++-------------- 1 files changed, 18 insertions(+), 14 deletions(-) diff --git a/program/js/common.js b/program/js/common.js index 4e98347..b4554a0 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -3,7 +3,7 @@ | Roundcube common js library | | | | This file is part of the Roundcube web development suite | - | Copyright (C) 2005-2007, Roundcube Dev, - Switzerland | + | Copyright (C) 2005-2007, The Roundcube Dev Team | | Licensed under the GNU GPL | | | +-----------------------------------------------------------------------+ @@ -484,21 +484,25 @@ function rcube_check_email(input, inline) { if (input && window.RegExp) { - var qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]'; - var dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]'; - var atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+'; - var quoted_pair = '\\x5c[\\x00-\\x7f]'; - var domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d'; - var quoted_string = '\\x22('+qtext+'|'+quoted_pair+')*\\x22'; - var sub_domain = '('+atom+'|'+domain_literal+')'; - var word = '('+atom+'|'+quoted_string+')'; - var domain = sub_domain+'(\\x2e'+sub_domain+')*'; - var local_part = word+'(\\x2e'+word+')*'; - var addr_spec = local_part+'\\x40'+domain; - var delim = '[,;\s\n]'; - var reg1 = inline ? new RegExp('(^|<|'+delim+')'+addr_spec+'($|>|'+delim+')', 'i') : new RegExp('^'+addr_spec+'$', 'i'); + var qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]', + dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]', + atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+', + quoted_pair = '\\x5c[\\x00-\\x7f]', + quoted_string = '\\x22('+qtext+'|'+quoted_pair+')*\\x22', + // Use simplified domain matching, because we need to allow Unicode characters here + // So, e-mail address should be validated also on server side after idn_to_ascii() use + //domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d', + //sub_domain = '('+atom+'|'+domain_literal+')', + domain = '([^@\\x2e]+\\x2e)+[a-z]{2,}', + word = '('+atom+'|'+quoted_string+')', + delim = '[,;\s\n]', + local_part = word+'(\\x2e'+word+')*', + addr_spec = local_part+'\\x40'+domain, + reg1 = inline ? new RegExp('(^|<|'+delim+')'+addr_spec+'($|>|'+delim+')', 'i') : new RegExp('^'+addr_spec+'$', 'i'); + return reg1.test(input) ? true : false; } + return false; }; -- Gitblit v1.9.1