Rob,

By not working I mean that it now will not return an error message
when the first input is a well formed email. So, I could put in the
following (correctly formed email, incorrectly formed email + and
number of items) and it is validating that field, i.e. not producing
the error message. I want it to only validate when all the input email
addresses are well formed.

I will look into what you have put above, though I am wondering if
there is something I am missing with what I  have so far that will
force the validation plugin email method, which I have adapted, to
consider all the inputs in the to field. It seems to only be taking
into consideration the first. Perhaps the problem exists in using a
for loop? Is that loop ending as soon as a well formed email address
is encountered?

Thanks so much for the help,

On Feb 16, 8:03 pm, RobG <rg...@iinet.net.au> wrote:
> 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 = '....@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