On Feb 17, 10:53 am, roryreiff <roryre...@gmail.com> wrote:
> So far, I have adapted this:
>
[...]
> into this:
>
> email: function(value, element) {
>                         var emails = value.split(,);
>                         for(var emailAddress in emails)
>                         {
>                                 return this.optional(element) || 
> /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?
> \^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\
> $%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)
> *)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c
> \x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF
> \uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-
> \uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?
> (\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-
> z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|
> [\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF
> \uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF
> \uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-
> z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|
> [\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(emailAddress);
>                         }
>                 },
>
> any thoughts why this is not working? Thanks,

What does "not work" mean?  Does it reject valid addresses?  Allow
invalid addresses?  It is at least scrupulously complex. :-)

How about simply testing for something basic like /^[^\...@[^\s]+$/
and leaving it at that?  You can't trust that your client-side script
has validated the string before being sent, so you have to do whatever
processing you require on the server anyway.

The fact that the address is well-formed (per RFC 5321 and RFC 5322)
doesn't mean it is valid (as in working or exists).

If you are expecting a comma separated list, consider something like:

  var addresses = 'b...@foo.com, a...@foo.com, st...@bar.com';
  var valid;
  $((addresses).split(',')).each(
    (function() {
      var re = /^[^\...@[^\s]+$/;
      return function(i, s) {
        valid = re.test(jQuery.trim(s));
        return valid;
      };
    })());
  alert(valid);


--
Rob

Reply via email to