Javascript验证电子邮件地址列表和逗号分隔名称

时间:2018-03-23 10:03:49

标签: javascript arrays string split

我需要验证一个文本框,该文本框将接受以逗号分隔的名称和电子邮件地址列表。有关示例,请查看下面的图片。

  

我想如何按名称和电子邮件分开:   image

代码示例是如果我只通过电子邮件地址分开,我想扩展这样的功能。

for (var i = 0; i < $scope.emailAddresses.length; i++) {
    var addr = $scope.emailAddresses[i];
    if (addr.address !== null && addr.address !== "") {
        message.users.push({email: addr.address});
    }
}
if($scope.massAddUsers !== undefined)
{
    var massEmails = $scope.massAddUsers.split(",");
    for(var j = 0; j < massEmails.length; j++)
    {
        var massEmailAddr = massEmails[j];
        if (massEmailAddr !== null && massEmailAddr.trim() !== "") {
            message.users.push({email: massEmailAddr.trim()});
        }
    }
}

3 个答案:

答案 0 :(得分:0)

  const list = input.split(",");
  const result = [];

  while(list.length > 2) {
    const [first, last, email] = list.splice(0, 3);
    // validate
    result.push({ first, last, email });
 }

答案 1 :(得分:0)

正如this post中所述,您可以使用

验证电子邮件地址
if ( strpos($_SERVER['REQUEST_URI'], "arr")!==false) 
{
   // Your code`enter code here`
}

并像

一样使用它
function validateEmail(email) {
    var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(String(email).toLowerCase());
}

答案 2 :(得分:0)

您应该首先在每个逗号分隔值处拆分字符串,然后循环遍历数组,直到只剩下3个元素。使用拼接,您可以每次创建一个新数组,并将firstNamelastNameemail分配给这些数组元素,因为您知道它们属于一起。

    // Get the string   
    var content = $scope.theUserInput;
    // Split string at every comma, which makes every comma seperated value an array element
    var array = content.split(',');
    // For every array element as long as there are at least 3 left
    while(array.length > 2) {
      // Take first 3 array element (e.g. felix, fritz, mail@a.com) and assign it to variables: first, last and email
      const [first, last, email] = array.splice(0,3);
      // Do your email verification here ...
      // then push to array all together:
      $scope.users.push({
        firstname: first,
        lastname: last,
        email: email
     });

一个完整的例子:http://jsfiddle.net/U3pVM/42477/