2014-10-04 63 views
0

前段时间我发布了这个问题PHPMailer Character ñ on recipient address并得到了我的答案。尽管如此,我决定继续使用PHPMailer,但我无法做任何关于这个事情的信息,但是排除了带有ñ字符的电子邮件,我使用这个正则表达式在javascript中使用这个正则表达式验证电子邮件,很好,但我希望它也能排除包含字符 - 的电子邮件。Javascript正则表达式验证电子邮件与ñ字符

我很难理解正则表达式,一旦我在这里找到了一个非常好的解释,但我失去了链接。总之,这里是我的功能,我用它来验证电子邮件:

function isEmail(email){ 
var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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 = /^(([^ñÑ<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[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ñ[email protected],但是,如果我在名称和姓氏之间添加一个点,如lauro.muñ[email protected],它就会变得有效。

如何修复正则表达式以在电子邮件中的任何位置捕获?

+0

我希望它是无效的,我想lauromuñ[email protected]和lauro.muñ[email protected]有同样的结果。如果你输入lauromuñ[email protected]它没有匹配,我想lauro.muñ[email protected]必须符合ethier。 – Lauro182 2014-10-04 01:01:03

+0

你说你不想匹配名称中或其他任何部分有'ñ'的电子邮件。 – 2014-10-04 01:02:58

回答

3

正则表达式在眼睛上很不自在,我会推荐用不同的工具解析。对此的一个解决方法是在你的模式之前的字符串^锚的开始之后添加负向预览。

var re = /^(?!.*[ñÑ]) ... $/ 

Live Demo

+0

正是我在找的东西。非常感谢! – Lauro182 2014-10-04 01:04:27

相关问题