配列をループするこのスクリプトがあり、配列内の各値がこの関数を使用して電子メールであるかどうかを確認することになっています。
function isEmail(email) {
var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
配列を調べることになっています:
$.each(arrayEmail,function(i){
var checkEmail = isEmail(arrayEmail[i]);
if(checkEmail != false){
alert(arrayEmail[i]);
var message = $('#sendMsg textarea.emailMsg').val();
$.ajax({
type:'post',
url:'ajax_inviteMsg.php',
data: 'to='+$.trim(arrayEmail[i])+'&message='+message,
success: function(data){
alert(data);
}
});
}
});
メールがfalseかどうかを確認したalert(arrayEmail[i]);
後、最初の値が表示されるだけで、ifステートメントのみを反復処理することがわかりますが、メールをテストしましたが、動作するはずですが、そのifステートメントを通過しません。
各関数の直後にアラートが発生した場合、値を正しく反復処理します。
繰り返しますが、電子メールは true であり、if ステートメントを true として反復処理する必要があります。
配列に複数の値がある場合、ifステートメントを1回だけ渡すという、私が間違っていることを知りたいだけです。
ありがとう
編集
各関数の前にもこれがあります
<div>test@gmail.com, fresh@hotmail.com</div>
var emails = $('div').text();
var arrayEmail = emails.split(',');