我有一个输入字段,可以在其中添加多个用分号作为分隔符的电子邮件地址。根据{{3}},电子邮件地址中可以包含分号,即“()<>[]:,;;-/=?^"@example.org是有效的电子邮件。
当我使用“ abc; xyz” @ example.com; hhh@exam.com.split(“;”)获得“ \” abc“,” xyz \“ @ example.com”,“ hhh @ exam”时.com”。我的要求是,我只需要获取“ abc; xyz@example.com”和hhh@exam.com。
问题是即使电子邮件地址包含分号,如何在电子邮件地址末尾进行检查和拆分,以便我将获得完整的电子邮件地址,而不是其中的一部分。请提出建议。这是plnkr email address wiki。请提出建议。
$scope.validateEmailAddress = function() {
var regex = /^((?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x20\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]))/;
if ($scope.email.indexOf(';') > 0) {
$scope.emailArray = $scope.email.split(";")
for (var x = 0; x < $scope.emailArray.length; x++) {
var emailId = $scope.emailArray[x];
emailId = emailId.trim();
if(reg.test(emailId)){
return true;
} else {
return false;
}
}
}
}