2012-10-23 169 views

回答

1

你可以做(​​但也許還有一些其他的解決方案)的唯一的事情是檢查的UITextField字符串爲那些信:

Bool find = NO; 
NSArray *romans = [NSArray arrayWithObjects:@"i", @"ii", @"ii", @"vi", nil]; //Fill the array as you want 

for(NSString *str in romans) 
{ 
    if([textField.text rangeOfString:str].location != NSNotFound) 
    { 
    find = YES; 
    break; 
    } 
} 

if(find) 
{ 
    //Roman letter found 
} 
+0

謝謝。它適用於快速解決方案。但是必須尋找一種能夠從長遠來看有所幫助的方法 –

1

使用Regex + NSPredicate

-(BOOL)isValidForRoman:(NSString *)text 
{ 
    NSString *romanRegex = @"^(?=.)(?i)M*(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])$"; 
    NSPredicate *romanTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", romanRegex]; 
    return ([romanTest evaluateWithObject:text]); 
} 

RegexRoman驗證。

相關問題