如何在 Javascript 中一次验证多封电子邮件?
How to validate multiple emails at once in Javascript?
我正在验证输入字段中的多封电子邮件,但我的 Regex 无法正常工作。我有一个输入字段,其中包含由 逗号、分号、space 分隔的电子邮件,有时没有 space,如下所示:
user1@email.comuser2@gmail.com , user3@email.com;user4@gmail.com user5@email.com
我正在尝试使用 Regex 获取所有电子邮件,然后验证每个电子邮件,但不太确定如何在 Javascript 中使用 Regex。
我已经在 Java 中编写了我的代码,它在接收所有电子邮件时效果很好:
Java代码:
String employeeEmails = "user1@email.com , user2@gmail.com user3@email.com;user4@gmail.com";
Matcher eachEmail = Pattern.compile("\w+@\w+.com").matcher(employeeEmails);
List<String> emailList = new ArrayList<String>();
while (eachEmail.find()){
emailList.add(eachEmail.group());
}
emailList 终于包含了所有的电子邮件
现在我正在尝试获取 Java 脚本中的所有电子邮件并验证每封电子邮件,如果其中一封电子邮件不是有效电子邮件,则会引发错误。这是我的代码:
Java脚本:
var regex1 = /\w+@\w+.com/; // This will get all emails from inputField
var emailList = regex1;
var regex2 = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; // This will validate each email
for(var i = 0;i < emailList.length;i++) {
if(!regex2.test(emailList[i])) {
return me.invalidText; // throw error if an email is not valid
}
}
需要在 Java 脚本中完成此操作。谁能告诉我我错过了什么吗?提前致谢!
希望对您有所帮助:
employeeEmails = "user1@email.com , user2@gmail.com user3@email.com;user4@gmail.com*john@doe";
function extractEmails(x) { return x.match(/([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})/g); }
var emails=extractEmails(employeeEmails);
// The emails already in an array, now a more exhaustive checking:
function validateEmail(v) { var regex = /^(([^<>()\[\]\.,;:\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 regex.test(v);
}
emails.forEach(function(email, index)
{
// Here you can handle each employee emails.
//
// Example:
var verified=validateEmail(email);
document.write(' validation is '+ verified +' for '+ email +'<br>');
});
来源:
- How to validate email address in JavaScript?
- https://www.w3schools.com/js/
我正在验证输入字段中的多封电子邮件,但我的 Regex 无法正常工作。我有一个输入字段,其中包含由 逗号、分号、space 分隔的电子邮件,有时没有 space,如下所示:
user1@email.comuser2@gmail.com , user3@email.com;user4@gmail.com user5@email.com
我正在尝试使用 Regex 获取所有电子邮件,然后验证每个电子邮件,但不太确定如何在 Javascript 中使用 Regex。
我已经在 Java 中编写了我的代码,它在接收所有电子邮件时效果很好:
Java代码:
String employeeEmails = "user1@email.com , user2@gmail.com user3@email.com;user4@gmail.com";
Matcher eachEmail = Pattern.compile("\w+@\w+.com").matcher(employeeEmails);
List<String> emailList = new ArrayList<String>();
while (eachEmail.find()){
emailList.add(eachEmail.group());
}
emailList 终于包含了所有的电子邮件
现在我正在尝试获取 Java 脚本中的所有电子邮件并验证每封电子邮件,如果其中一封电子邮件不是有效电子邮件,则会引发错误。这是我的代码:
Java脚本:
var regex1 = /\w+@\w+.com/; // This will get all emails from inputField
var emailList = regex1;
var regex2 = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; // This will validate each email
for(var i = 0;i < emailList.length;i++) {
if(!regex2.test(emailList[i])) {
return me.invalidText; // throw error if an email is not valid
}
}
需要在 Java 脚本中完成此操作。谁能告诉我我错过了什么吗?提前致谢!
希望对您有所帮助:
employeeEmails = "user1@email.com , user2@gmail.com user3@email.com;user4@gmail.com*john@doe";
function extractEmails(x) { return x.match(/([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})/g); }
var emails=extractEmails(employeeEmails);
// The emails already in an array, now a more exhaustive checking:
function validateEmail(v) { var regex = /^(([^<>()\[\]\.,;:\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 regex.test(v);
}
emails.forEach(function(email, index)
{
// Here you can handle each employee emails.
//
// Example:
var verified=validateEmail(email);
document.write(' validation is '+ verified +' for '+ email +'<br>');
});
来源:
- How to validate email address in JavaScript?
- https://www.w3schools.com/js/