【发布时间】:2014-10-04 00:51:04
【问题描述】:
前段时间我发布了这个问题PHPMailer Character ñ on recipient address 并得到了我的答案。尽管如此,我还是决定继续使用 PHPMailer,但我无法对 ñ 做任何事情,但排除带有 ñ 字符的电子邮件,我首先使用 javascript 使用我很久以前在本网站某处找到的这个正则表达式验证电子邮件,它工作得很好很好,但我希望它也排除带有字符 ñ 的电子邮件。
我很难理解正则表达式,一旦我在 stackoverflow 上找到了一个很好的解释,但我失去了链接。无论如何,这是我用来验证电子邮件的函数:
function isEmail(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(email);
}
要排除ñ,我想我可以这样做:
function isEmail(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(email);
}
这适用于 lauromuñoz@mail.com 之类的电子邮件,但是如果我在姓名和姓氏之间添加一个点,例如 lauro.muñoz@mail.com,它就会变得有效。
如何修复正则表达式以在电子邮件的任何位置捕获 ñ?
【问题讨论】:
-
我希望它无效,我希望 lauromuñoz@mail.com 和 lauro.muñoz@mail.com 具有相同的结果。如果您键入 lauromuñoz@mail.com 它没有匹配项,我希望 lauro.muñoz@mail.com 必须匹配 ethier。
-
您说您不想匹配名称或任何其他部分包含
ñ的电子邮件。
标签: javascript regex validation email