我根据他们的电子邮件域在firebase上划分用户。我可以使用哪些通用代码在以下示例中仅提取“havard”?所有用户电子邮件均以“.edu”结尾
let email = jsmith@student.havard.edu, 让电子邮件= jsmith@havard.edu
答案 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]
}