提取电子邮件地址,但删除一些通知

Extract email addresses but remove some tld

本文关键字:通知 删除 电子邮件地址 提取      更新时间:2023-09-26

我有一个字符串中的文本。我写了一个函数,从这个字符串中提取电子邮件,但是我想要删除具有特定tld的电子邮件。

例如,删除所有带有。xyz

域名的电子邮件
  • test@gmail.com -> OK
  • test@gmail.xyz -> OUT
  • test@gmail.XYZ——>

函数如下。事实上,我不认为区分大小写的整合是有效的。请帮忙好吗?

function extraction(string) {
    var emails= string.match(/'b[A-Z0-9._%+-]+@[A-Z0-9.-]+'.[A-Z]{2,6}'b/ig);       
    if (/(xyz|us|porn/i)$/.test(emails)){ 
        return false;
    } else { 
        return emails;
    }   
}

你可以在你的第一个正则表达式中加入这个逻辑:

'b[A-Z0-9._%+-]+@[A-Z0-9.-]+'.(?!xyz'b|abc'b|xxx'b)[A-Z]{2,6}'b

插入的部分((?!xyz'b|abc'b|xxx'b))将确保排除这3个扩展(xyz, abc, xxx)。

不需要第二个正则表达式。违规者将立即被排除在外。

对于大小写不敏感,您需要在正则表达式的最后提供i修饰符,而不是中途:

/........./i

首先,如果您试图限制某些单词,您应该做的是在放入正则表达式之前进行验证。http://regexr.com/

第二,这个正则表达式的一部分是错误的/(xyz|us|porn/i)$/你在i之前放了一个未转义的正斜杠什么意思都没有,这是正则表达式中的错误我不是正则表达式专家,我这样做了,并为你试图验证的这些单词工作这是我的结果/xyz|us|porn/ig我把/ig什么意思是任何单词的大写或小写将被搜索和单词在全局允许交互式搜索。

我正在学习英语,如果你有不明白的地方问我,我将回答你。

function extraction(string) {
    var emails= string.match(/'b[A-Z0-9._%+-]+@[A-Z0-9.-]+'.[A-Z]{2,6}'b/ig);       
    if (/xyz|us|porn/ig.test(emails)){ 
        return false;
    } else { 
        return emails;
    }   
}
 document.write(extraction('test@gmail.com'));
 document.write('<br/>');
 document.write(extraction('test@gmail.xyz'));
 document.write('<br/>');
 document.write(extraction('test@gmail.XYZ'));