Ios 使用NSDataDetector验证电话号码

Ios 使用NSDataDetector验证电话号码,ios,validation,nsdatadetector,Ios,Validation,Nsdatadetector,如何使用NSDataDetector验证电话号码。在我的项目中,大于14文本长度的任何内容都是有效的,但NSDataDetector不会以这种方式检测它 我正在使用以下stackoverflow帖子中的代码:您不能使用NSDataDetector它只在[10\u 7,4\u 0] 因此,它是一种简单而正确的验证电话号码的方法,就像贝娄方式,而不是NSDataDetector NSString *string =@"121453315"; NSString *phoneRege

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


我正在使用以下stackoverflow帖子中的代码:

您不能使用
NSDataDetector
它只在[10\u 7,4\u 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位以上电话号码的特殊正则表达式,以添加缺少的结果。对于较短的电话号码,NSDataDetector比您可以编写的任何正则表达式都要精确得多…

正则表达式似乎是唯一的方法。我读到最好使用NSDataDetector,因为它会根据国家/地区检查电话号码,但在我的情况下,如果客户希望允许超过14个字符,我将不得不使用RegEx。谢谢@Nitin@Joy不明白为什么你在接受答案后又不接受。。不管怎样,我很抱歉,但我第一次点击的答案没有经过测试就被接受了。但是,当我测试时,它似乎并没有验证在使用NStasaDebug时被验证的OK的电话号码。