如何验证电子邮件地址是否唯一

时间:2015-08-17 19:31:26

标签: javascript jquery html5 dom

我有一个包含10到15个电子邮件地址的表单。如何检查所有地址是否唯一?我怎样才能确定哪些是重复的?

我正在寻找JavaScript或jQuery解决方案。

2 个答案:

答案 0 :(得分:1)

您可以使用一系列电子邮件和jQuery语句inArray,如下所示:

function validateEmails() {
    var emailArray = ["email1", "email2", "email3", "email4"];
    var outputArray = [];
    for (int i = 0; i < emailArray.length; i++) {
        if($.inArray(emailArray[i], outputArray) != -1) {
            //item is not in array, add it
            outputArray.push(emailArray[i]);
        } else {
            //item is a duplicate
            alert("This is the duplicate email id:" + emailArray[i]);
        }
    }
}

基本上,您只需阅读数组中的每个电子邮件ID emailArray即可。然后,您将遍历每个对象。如果$.inArray未返回-1,则该项目是重复的,该窗口会提醒用户指定的ID。

答案 1 :(得分:1)

要在数组中查找重复项,请将元素插入到字典中,以跟踪每个元素的显示次数。然后,每个计数大于1的元素都是重复的。

演示:

function findDuplicates(data) {
  var counts = {};
  data.forEach(function (item) {
    if (counts[item] === undefined) {
      counts[item] = 1;
    } else {
      counts[item] += 1;
      if (counts[item] == 2) {
        print('duplicate: ' + item);
      }
    }
  });
}

function print(s) {
  document.write(s + '<br />');
}

var addresses = ['abc@xyz.com', 'foo@bar.com', 'abc@xyz.com', 'babar@elephants.com', 'president@whitehouse.gov', 'babar@elephants.com', 'abc@xyz.com'];
findDuplicates(addresses);