【问题标题】:Phone number validation using NSDataDetector使用 NSDataDetector 验证电话号码
【发布时间】:2013-08-19 09:36:17
【问题描述】:

如何使用 NSDataDetector 验证电话号码。在我的项目中,任何高于 14 的文本长度也是有效的,但 NSDataDetector 不会以这种方式检测到它。

我正在使用以下 stackoverflow 帖子中的代码:NSTextCheckingResult for phone numbers

【问题讨论】:

    标签: ios validation nsdatadetector


    【解决方案1】:

    您不能使用 NSDataDetector,它仅适用于 [10_7,4_0]

    所以它是验证电话号码的简单而正确的方法,就像下面的方式而不是NSDataDetector

        NSString *string =@"121453315"; 
        NSString *phoneRegex = @"^((\\+)|(00))[0-9]{6,14}$";
        NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];
        BOOL phoneValidates = [phoneTest evaluateWithObject:string];
    

    【讨论】:

    • 正则表达式似乎是唯一的方法。我读到使用 NSDataDetector 更好,因为它会根据国家/地区检查电话号码,但在我的情况下,如果客户希望允许超过 14 个字符,我将不得不使用 RegEx。谢谢。 @尼丁
    • @Joy 不明白为什么你在接受答案后再次不接受......无论如何都可以
    • 很抱歉,我首先点击了未经测试接受的答案。但是当我测试时,它似乎没有验证在使用 NSDataDetector 时正在验证的电话号码。
    • 您需要将 regix 字符串设置为您输入的 par 和您需要的 pr
    【解决方案2】:

    将 NSDataDetector 用于常规电话号码,并添加一个仅匹配 14 位以上电话号码的特殊正则表达式,以便您的应用添加缺失的结果。对于较短的电话号码,NSDataDetector 将比您可能编写的任何正则表达式准确得多...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-09
      • 2014-11-30
      • 2019-02-28
      • 2021-05-22
      • 2011-05-19
      • 2013-08-24
      • 1970-01-01
      相关资源
      最近更新 更多