我们需要将以下字符串视为用例,首先我要拆分 按“,”,然后按“ @”
如果所有域都相同(全部为gmail或全部为yahoo),则按@分隔后,其有效 否则无效。
请帮助我处理拆分部分。
String input1 = example@gmail.com , example1@gmail.com;
String input2 = example@yahoo.com , example1@gmail.com;
String input 1 == valid.
String input 2 == Invalid.
答案 0 :(得分:1)
这是一个简单的示例,您可以使用[0]和[1]从拆分中访问数组。
var input = 'example@gmail.com , example1@ymail.com, example1@yahoo.com';
input.split(',').forEach(email => {
const domain = email.split('@')[1].trim();
if (domain === 'gmail.com' || domain === 'yahoo.com') {
console.log("Email address " + email + " is valid.");
} else {
console.log("Email address " + email + " is not valid.");
}
})
答案 1 :(得分:1)
使用功能
isValid = (emails)=>{
let list = emails.split(','), isValid = true
list.forEach((email)=>{
if(!email.includes('@gmail.com')){
isValid = false
}
})
return isValid
}
isValid(' example@gmail.com , example1@hotmail.com;')
由分割 然后检查每封电子邮件,其中包含 您可以添加secound参数来检查电子邮件类型并使其更加通用
isValid = (emails, validEmail)=>{
let list = emails.split(','), isValid = true
list.forEach((email)=>{
if(!email.includes(validEmail)){
isValid = false
}
})
return isValid
}
isValid(' example@gmail.com , example1@hotmail.com', '@gmail.com')
答案 2 :(得分:0)
您可以提取域,然后将它们添加到Set
中,并通过检查Set
的大小来查看它们是否唯一。
一个额外的好处是,不管字符串中的电子邮件数量如何,它都可以工作。
const input1 = 'example@gmail.com , example1@gmail.com';
const input2 = 'example@yahoo.com , example1@gmail.com';
function validInput(input) {
const domains = input.split(',').map(email => email.trim().split('@')[1])
return new Set(domains).size === 1;
}
console.log('is input1 valid ?',validInput(input1));
console.log('is input2 valid ?',validInput(input2));