【问题标题】:In xcode does anyone know how to check that a string is this kind of phone number (123) 456-7890?在 xcode 中,有谁知道如何检查字符串是否是这种电话号码 (123) 456-7890?
【发布时间】:2011-10-02 13:05:33
【问题描述】:

我试过了,但它不起作用:

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 始终等于“未找到”范围。 // 谢谢

【问题讨论】:

  • 您是否尝试过转义括号,例如:\([0-9]{3}\) [0-9]{3}-[0-9]{4}
  • 是的,我尝试转义括号。如果我转义括号,则会收到警告“未知转义序列 \x29”,但它仍然不起作用。各位,请帮帮忙。我还没有弄清楚这一点。谢谢。

标签: regex phone-number


【解决方案1】:

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

- (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];
}

【讨论】:

    猜你喜欢
    • 2021-01-06
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2017-10-27
    • 2022-06-21
    • 2017-01-17
    • 2019-12-20
    相关资源
    最近更新 更多