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