Xcode 在MyPlayder中提取电子邮件域
我正在开发一个聊天应用程序。用户需要使用大学的电子邮件地址注册 我的应用程序将严重依赖于使用Xcode 在MyPlayder中提取电子邮件域,xcode,swift,email,dns,extract,Xcode,Swift,Email,Dns,Extract,我正在开发一个聊天应用程序。用户需要使用大学的电子邮件地址注册 我的应用程序将严重依赖于使用UnivID(大学ID)来划分用户,这将是“@”符号以及电子邮件域。例如,如果用户使用以下任一电子邮件地址注册:jsmith@mail.havard.edu, jsmith@havard.edu或jsmith@student.havard.edu. UnivID='@havard.edu' 我对编码是新手,所以如果这很容易实现,我希望不要侮辱你的智慧 干杯我想你真的想要符号后面的一切。如果是这种情况,那么
UnivID
(大学ID)来划分用户,这将是“@”
符号以及电子邮件域。例如,如果用户使用以下任一电子邮件地址注册:jsmith@mail.havard.edu, jsmith@havard.edu或jsmith@student.havard.edu. UnivID='@havard.edu'
我对编码是新手,所以如果这很容易实现,我希望不要侮辱你的智慧
干杯我想你真的想要符号后面的一切。如果是这种情况,那么这段代码将起作用
let example = "jsmith@student.harvard.edu"
let univId = "@" + example.componentsSeparatedByString("@")[1]
// "@student.harvard.edu"
let example = "jsmith@student.harvard.edu"
let domain = example.componentsSeparatedByString("@")
let parts = domain.componentsSeparatedByString(".")
let univId = "@" + parts[parts.count - 2] + "." + parts[parts.count - 1]
// @harvard.edu
如果您真的只需要扩展域字符串的最后两部分,那么这将起作用
let example = "jsmith@student.harvard.edu"
let univId = "@" + example.componentsSeparatedByString("@")[1]
// "@student.harvard.edu"
let example = "jsmith@student.harvard.edu"
let domain = example.componentsSeparatedByString("@")
let parts = domain.componentsSeparatedByString(".")
let univId = "@" + parts[parts.count - 2] + "." + parts[parts.count - 1]
// @harvard.edu
下面是我创建的一个算法,用于从电子邮件地址解析域和扩展。我使用了一个最常见的域名后缀硬编码列表,以确保如果电子邮件有两部分域名后缀,比如“co.uk”或“ca.gov”,我不会只返回后缀部分 您只需要在用例的结果域上预先加上“@”
class func parseDomain(fromEmail email: String) -> String? {
let suffixList = ["com", "edu", "gov", "int", "mil", "net", "org", "xyz", "biz", "info", "ai", "io", "co", "ly", "eu", "cn", "ru", "nl", "de", "uk"]
guard let emailDomains = email.components(separatedBy: "@").last else {
return nil
}
let domainParts = emailDomains.components(separatedBy: ".")
guard domainParts.count >= 2 else {
return nil
}
var domain = domainParts[domainParts.count - 2] + "." + domainParts[domainParts.count - 1]
let secondLastComponent = domainParts[domainParts.count - 2]
if suffixList.contains(secondLastComponent) && domainParts.count >= 3 {
// we want to avoid returning things like co.uk, or com.au,
// so if the 2nd last component is a common suffix, return the last 3 parts instead.
domain = domainParts[domainParts.count - 3] + "." + domainParts[domainParts.count - 2] + "." + domainParts[domainParts.count - 1]
}
return domain
}
最新版本2020,Swift 5.2,XCode 11.4.1
适用于所有输入的代码
let example = "email_id@gmail.com"
let components = example.components(separatedBy: "@")
if components.count > 1 {
let domain = components[1]
// domain has value gmail.com
}
你的问题是什么,兄弟?嗨,对不起,我不太清楚。我希望创建一个字符串='@domain.edu',无论用户是否使用以下电子邮件注册jsmith@mail.havard.edu, jsmith@student.havard.edu或jsmith@havard.eduThanks伙计!正是我想要的。