借助此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})$/;


不过,有一个表达式可以验证网络上某处的所有有效类型的电子邮件地址。研究一下,看看为什么正则表达式验证几乎总是要排除有效输入或太宽容

07-24 17:20
查看更多