在Swift / Myplayground中提取电子邮件域

时间:2016-04-01 01:59:09

标签: swift email extract

我根据他们的电子邮件域在firebase上划分用户。我可以使用哪些通用代码在以下示例中仅提取“havard”?所有用户电子邮件均以“.edu”结尾

let email = jsmith@student.havard.edu, 让电子邮件= jsmith@havard.edu

2 个答案:

答案 0 :(得分:4)

这是一个简单的函数,适用于您提供的输入集。

func getMainPart(s: String) -> String {
    let charSet = NSCharacterSet(charactersInString: ".@")
    let v = s.componentsSeparatedByCharactersInSet(charSet)
    let pos = v.count - 2
    return v[pos]
}

这是另一个解决方案:

func getMainPart2(s: String) -> String {
    var v = s.componentsSeparatedByString("@").last?.componentsSeparatedByString(".")
    v?.removeLast()

    return (v!.last)!
}

您可以这样称呼它:

let email1 = "smith@harvard.edu"
let s = getMainPart2(email1)
print(s) // this outputs: harvard

答案 1 :(得分:1)

一个合法的电子邮件地址只有一个“@”,因此单独的电子邮件地址:

public func componentsSeparatedByString(separator: String) -> [String]

这是示例代码:

let components = email.componentsSeparatedByString("@").last?.componentsSeparatedByString(".")
if let index = components?.endIndex.advancedBy(-2) {
    components![index]
}