借助此RegExp,我可以轻松检查电子邮件是否有效:
RegExp(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/);
但是,对于这样的地址,这只是返回true:
example@example.com
我也想接受:
*@example.com
我需要对RegExp应用哪些更改?
提前致谢
最佳答案
有两件事:接受*@foo.bar
:
var expression = /^([\w-\.*]+@([\w-]+\.)+[\w-]{2,4})?$/;//no need to pass it to the RegExp constructor
但是此表达式确实接受
-@-.--
,但是再一次,正则表达式和电子邮件并不是很好的朋友。但是根据您的表情,这是一个不太可靠的版本:var expression = /^[\w-\.\d*]+@[\w\d]+(\.\w{2,4})$/;
不过,有一个表达式可以验证网络上某处的所有有效类型的电子邮件地址。研究一下,看看为什么正则表达式验证几乎总是要排除有效输入或太宽容