【问题标题】:Objective C: How do I substring an email address in text field to firstpart separated by @目标C:如何将文本字段中的电子邮件地址子串到以@分隔的第一部分
【发布时间】:2009-10-05 04:51:48
【问题描述】:

我一直在挠头,试图找到任何资源,将我从文本字段中获得的电子邮件地址子串化为获取 @ 符号之前的第一部分。我试过查看文档,玩转组件separatedbyString。

没有运气。

提前感谢您的帮助

【问题讨论】:

    标签: iphone objective-c nsstring nsarray


    【解决方案1】:
    NSString* email = @"foo@bar.com";
    NSString* username = [[email componentsSeparatedByString:@"@"] objectAtIndex:0];
    

    您很可能需要进行一些错误检查,但这就是它的核心。

    【讨论】:

    • 谢谢,我有 objectAtIndex 一个单独的条目指向它,但它没有工作,但感谢伙计,这工作
    【解决方案2】:

    Using regular expressions:

    NSString * email = @"foo@bar.com";
    NSString * name = [email stringByMatching:@"^([^@]+)@" capture:1];
    

    【讨论】:

    • 如果不需要,为什么要包含第三方库?
    • @nall 我更喜欢使用RegexKitLite,它只需要在icu库中链接并#importing一些NSString类别
    • @Dave 我同意——RegexKitLite 很棒,但它仍然是您必须维护/更新的额外代码。
    • @nall +1 好点。我将诸如 RKL 之类的东西从 SVN 检出到一个目录中,然后只在我的项目中引用这些文件。我时不时地运行一个脚本来更新我所有签出的项目,然后我所有使用 RKL(或其他)的项目都会自动更新。我的私人框架也是如此。我将它们直接构建到 ~/Library/Frameworks,这样我构建的所有内容都会自动获取最新版本。
    【解决方案3】:
    - (NSString*)usernameFromEmail:(NSString*)email
    {
        NSString* username = nil;
        NSRange range = [email rangeOfString:@"@"];
        if (range.location != NSNotFound)
        {
            username = [email substringToIndex:range.location];
        }
        return username;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 2022-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多