我需要验证一个文本框,该文本框将接受以逗号分隔的名称和电子邮件地址列表。有关示例,请查看下面的图片。
我想如何按名称和电子邮件分开:
![]()
代码示例是如果我只通过电子邮件地址分开,我想扩展这样的功能。
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()});
}
}
}
答案 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个元素。使用拼接,您可以每次创建一个新数组,并将firstName
,lastName
和email
分配给这些数组元素,因为您知道它们属于一起。
// 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/