0

我想检查这个号码是不是 MGRS。但我无法找到解决方案。目前我正在处理以下代码。

    +(BOOL)isValidMGRS:(NSString *)str{

    NSString *mgrsRegex = @"(\\d{1,2})([C-X&&[^IO]])([A-Z&&[^IO]])([A-Z&&[^IO]])";
    NSPredicate *mgrsTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", mgrsRegex];
    return [mgrsTest evaluateWithObject:str];

}

但每次我弄错时,是否有任何其他模式可以检查 MGRS 号码?

4

1 回答 1

1

如果我理解正确并且“MGRS 编号”是http://en.wikipedia.org/wiki/Military_grid_reference_system尝试:

+ (BOOL)isValidMGRS:(NSString *)str{
{       
    NSError *error = NULL;
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(\\d{1,2})([C-X&&[^IO]])([A-Z&&[^IO]])([A-Z&&[^IO]])"
                                                                           options:0
                                                                             error:&error];
    NSRange range = [regex rangeOfFirstMatchInString:str options:0 range:NSMakeRange(0, [str length])];
    if (range.location != NSNotFound && error == nil)
    {
        return YES;
    }
    return NO;
}
于 2013-09-23T13:21:07.440 回答