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

发布于 2024-12-08 03:01:04 字数 414 浏览 4 评论 0原文

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

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

I've tried this and it's not working:

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 always equals the "not found" range.
// Thx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恋竹姑娘 2024-12-15 03:01:04

我认为它应该是“\\”(双斜杠)而不是“\”(单斜杠)。

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

I think it should be '\\' (double slashes) and not '\' (single slash)..

- (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];
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文