Changeset f20cf0f in github


Ignore:
Timestamp:
Nov 30, 2007 12:20:16 PM (6 years ago)
Author:
thomascube <thomas@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
78ab48b
Parents:
ed54070
Message:

Simplified email address check (fixes #1484679)

Location:
program/js
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • program/js/app.js

    r1107480 rf20cf0f  
    16751675 
    16761676    // check for empty recipient 
    1677     if (input_to && !rcube_check_email(input_to.value, true)) 
     1677    if (input_to && !rcube_check_email(input_to.value.replace(/^\s+/, '').replace(/[\s,;]+$/, ''), true)) 
    16781678      { 
    16791679      alert(this.get_label('norecipientwarning')); 
  • program/js/common.js

    rb0dbf3c rf20cf0f  
    397397  if (input && window.RegExp) 
    398398    { 
    399     var no_ws_ctl    = "[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]"; 
    400     var alpha        = "[\\x41-\\x5a\\x61-\\x7a]"; 
    401     var digit        = "[\\x30-\\x39]"; 
    402     var cr        = "\\x0d"; 
    403     var lf        = "\\x0a"; 
    404     var crlf        = "(" + cr + lf + ")"; 
    405  
    406     var obs_char    = "[\\x00-\\x09\\x0b\\x0c\\x0e-\\x7f]"; 
    407     var obs_text    = "("+lf+"*"+cr+"*("+obs_char+lf+"*"+cr+"*)*)"; 
    408     var text        = "([\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f]|"+obs_text+")"; 
    409     var obs_qp        = "(\\x5c[\\x00-\\x7f])"; 
    410     var quoted_pair    = "(\\x5c"+text+"|"+obs_qp+")"; 
    411  
    412     var wsp        = "[\\x20\\x09]"; 
    413     var obs_fws    = "("+wsp+"+("+crlf+wsp+"+)*)"; 
    414     var fws        = "((("+wsp+"*"+crlf+")?"+wsp+"+)|"+obs_fws+")"; 
    415     var ctext        = "("+no_ws_ctl+"|[\\x21-\\x27\\x2A-\\x5b\\x5d-\\x7e])"; 
    416     var ccontent    = "("+ctext+"|"+quoted_pair+")"; 
    417     var comment    = "(\\x28("+fws+"?"+ccontent+")*"+fws+"?\\x29)"; 
    418     var cfws        = "(("+fws+"?"+comment+")*("+fws+"?"+comment+"|"+fws+"))"; 
    419     var cfws        = fws+"*"; 
    420  
    421     var atext        = "("+alpha+"|"+digit+"|[\\x21\\x23-\\x27\\x2a\\x2b\\x2d\\x2e\\x3d\\x3f\\x5e\\x5f\\x60\\x7b-\\x7e])"; 
    422     var atom        = "("+cfws+"?"+atext+"+"+cfws+"?)"; 
    423  
    424     var qtext        = "("+no_ws_ctl+"|[\\x21\\x23-\\x5b\\x5d-\\x7e])"; 
    425     var qcontent    = "("+qtext+"|"+quoted_pair+")"; 
    426     var quoted_string    = "("+cfws+"?\\x22("+fws+"?"+qcontent+")*"+fws+"?\\x22"+cfws+"?)"; 
    427     var word        = "("+atom+"|"+quoted_string+")"; 
    428  
    429     var obs_local_part    = "("+word+"(\\x2e"+word+")*)"; 
    430     var obs_domain    = "("+atom+"(\\x2e"+atom+")*)"; 
    431  
    432     var dot_atom_text    = "("+atext+"+(\\x2e"+atext+"+)*)"; 
    433     var dot_atom    = "("+cfws+"?"+dot_atom_text+cfws+"?)"; 
    434  
    435     var dtext        = "("+no_ws_ctl+"|[\\x21-\\x5a\\x5e-\\x7e])"; 
    436     var dcontent    = "("+dtext+"|"+quoted_pair+")"; 
    437     var domain_literal    = "("+cfws+"?\\x5b("+fws+"?"+dcontent+")*"+fws+"?\\x5d"+cfws+"?)"; 
    438  
    439     var local_part    = "("+dot_atom+"|"+quoted_string+"|"+obs_local_part+")"; 
    440     var domain        = "("+dot_atom+"|"+domain_literal+"|"+obs_domain+")"; 
    441     var addr_spec    = "("+local_part+"\\x40"+domain+")"; 
    442  
    443     var reg1 = inline ? new RegExp(addr_spec, 'i') : new RegExp('^'+addr_spec+'$', 'i'); 
     399    var qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]'; 
     400    var dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]'; 
     401    var atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+'; 
     402    var quoted_pair = '\\x5c[\\x00-\\x7f]'; 
     403    var domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d'; 
     404    var quoted_string = '\\x22('+qtext+'|'+quoted_pair+')*\\x22'; 
     405    var sub_domain = '('+atom+'|'+domain_literal+')'; 
     406    var word = '('+atom+'|'+quoted_string+')'; 
     407    var domain = sub_domain+'(\\x2e'+sub_domain+')*'; 
     408    var local_part = word+'(\\x2e'+word+')*'; 
     409    var addr_spec = local_part+'\\x40'+domain; 
     410    var reg1 = inline ? new RegExp('(^|<)'+addr_spec+'(>|$)', 'i') : new RegExp('^'+addr_spec+'$', 'i'); 
    444411    return reg1.test(input) ? true : false; 
    445412    } 
Note: See TracChangeset for help on using the changeset viewer.