我有两个正则表达式,我正在尝试组合。一个是特定于电子邮件的,另一个检查某些特殊字符。经过多次玩弄,我得出了这个解决方案:
"^([-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+.[a-zA-Z]{2,4}|[\w\-ÀÈÌÒÙàèìòùÁÉÍÓÚÝáéíóúýÂÊÎÔÛâêîôûÃÑÕãñõÄËÏÖÜŸäëïöüŸçÇŒœßØøÅåÆæÞþÐð _]){0,80}$"
它似乎确实检查了我需要它的内容,但例如以下内容仍然有效:abc@foo
它不会强制使用完整的电子邮件地址。
我是否使用了正确的方法,或者是否有更简单的方法来构建此正则表达式?我正在使用正则表达式进行学习,因此所有建议都值得赞赏。
将乘数{0,80}
移到括号内:
"^([-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+.[a-zA-Z]{2,4}|[\w\-ÀÈÌÒÙàèìòùÁÉÍÓÚÝáéíóúýÂÊÎÔÛâêîôûÃÑÕãñõÄËÏÖÜŸäëïöüŸçÇŒœßØøÅåÆæÞþÐð _]{0,80})$"
// here __^^^^^^^
另外,[a-zA-Z]{2,4}
验证顶级域名方面确实很差,请查看 IANA。
me@localhost
是一个有效的电子邮件地址。