javascript - 检查输入的电子邮件

标签 javascript regex

学习 JavaScript 中的正则表达式。我需要检查输入的电子邮件。

有这个:

reg=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/

但我需要检查这封电子邮件是否以 @google.com@me.com 结尾。例如 /@google.com$|@me.com$/。差点让我心碎。请帮助我)

最佳答案

从编程的 Angular 来看,您应该首先检查您的电子邮件字符串 terminates使用 @google.com@me.com,然后运行您的正则表达式。

这将节省您的时间:正则表达式将是您所知道的所有通用邮件格式正则表达式,并且您可以随时添加更多域过滤器(将终止域放入数组或配置中...)。

它的 CPU 密集程度也低得多。如果您需要连续执行这些检查并期望过滤掉大量电子邮件,那么您会注意到一个明显的差异:虚拟字符串比较比正则表达式快得多。

<小时/>

var emails = ['jose@me.com', 'hacker@noway.com', 'hacker";DROP TABLES;@me.com' ];
var domains = ['gmail.com', 'me.com'];

function validateEmailFormat(email) {
    return /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)
}

function validateEmailDomain(email) {
    for (i in domains) {
	if (email.endsWith('@'+domains[i])) {
	    return true;
	}
    }
    return false;
}

for (i in emails) {
    email = emails[i];
    if (validateEmailDomain(email) && validateEmailFormat(email)) {
	console.log('OK for '+email);
    } else {
	console.log('NOT OK for '+email);
    }
}

关于javascript - 检查输入的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45404144/

相关文章:

javascript - .trigger() 一个 .on()

javascript - 为什么在比较 2 个 "exact"JavaScript 对象值时,Object.is() 返回 false?

java - 正则表达式用空格拆分包含标签但不破坏 java 中的标签的字符串

javascript - RegEx 删除所有样式但保留颜色和背景颜色(如果存在)

regex - 匹配或没有匹配项时留空

c++ - 正则表达式适用于 Linux 但不适用于 Solaris

javascript - 为什么我的 Manifest.json 显示 "Page does not work offline"

javascript - IE浏览器日期时间问题

javascript - 如何在 datatables jQuery 插件中指定列数

regex - 基于R中的点拆分文本