为了账号安全,请及时绑定邮箱和手机立即绑定

解析包含名称的完整电子邮件地址

解析包含名称的完整电子邮件地址

Go
呼啦一阵风 2023-04-04 14:51:26
我需要从电子邮件地址获取域,问题是同一电子邮件包含名称name < email >,我当前的代码是:var (    ErrBadFormat        = errors.New("invalid format")    emailRegexp = regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"))func GetFromDomain(email string) string {    if !emailRegexp.MatchString(email) {        fmt.Println("Error %FROMDOMAIN ", email)        return "localhost"    }    i := strings.LastIndexByte(email, '@')    return email[i+1:]}这样做的最佳做法是什么?当电子邮件包含名称时,我使用 LastIndexByte 的方法返回错误。我该如何解决这个问题?
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

最好的办法是使用适当的电子邮件解析库,例如标准库的mail.ParseAddress方法。

从那里,您可以轻松地从地址中提取域名,方法是拆分@-- 但要小心!@在电子邮件地址的用户名部分(即"foo@bar"@example.com)使用引号或转义符实际上是合法的,因此您必须在最后 @一个.


查看完整回答
反对 回复 2023-04-04
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信