Как сделать проверку регулярных выражений в target-c - PullRequest
2 голосов
/ 09 августа 2011

У меня есть следующая проверка регулярных выражений в javascript, и я хочу сделать то же самое в target-c

if(/^[0-9]+$/.test(name)){  
    if(name.ength > 16) valid = false;
    if(name.substring(0,2) != "00") valid = false;
    return valid;
}

Итак, в target-c я попробовал это так:

BOOL valid = true;

NSString *regex1 = @"/^[0-9]+$/";
NSPredicate *test1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex1];

if([test1 evaluateWithObject:name]){
    if([name length] > 16){
        valid = false;
    }

    if([name rangeOfString:@"00"].location == NSNotFound){
        valid = false;
    }
}

Но если тело никогда не входит.Есть идеи?

1 Ответ

1 голос
/ 09 августа 2011

Удалите косые черты - они нужны вам как разделители в PHP, но не в Objective-C (они будут пытаться сопоставить буквенную косую черту, которая, очевидно, потерпит неудачу):

NSString *regex1 = @"^[0-9]+$";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...