在xcode中有谁知道如何检查字符串是否是这种电话号码(123)456-7890?

时间:2011-10-02 13:05:34

标签: regex phone-number

我已经尝试了这个并且它无法正常工作:

range1 = NSMakeRange(0,[string length]);
NSRegularExpression *regex;
regex = [NSRegularExpression 
        regularExpressionWithPattern:@"([0-9]{3}) [0-9]{3}-[0-9]{4}"
        options:0 error:NULL];
range2 = [regex rangeOfFirstMatchInString:string options:0 range:range1];
if (NSEqualRanges(range1, range2)) {
    return YES;
}

// range2始终等于“未找到”范围。 //谢谢

1 个答案:

答案 0 :(得分:0)

我认为它应该是'\\'(双斜线)而不是'\'(单斜杠)..

- (BOOL) validatePhone: (NSString *) candidate {
    NSString *phoneRegex = @"\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})";

    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];
    return [phoneTest evaluateWithObject:candidate];
}