UITextFieldにi、ii、iii、iv ...などのローマ数字が含まれているかどうかを確認するために使用できるメソッドはありますか?
3 に答える
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]);
}
これRegexはRoman検証用です。
于 2012-10-23T10:21:35.150 に答える
1
NSRegularExpressionいずれかのUITextFieldDelegateメソッドで正規表現を使用しUITextFieldて、有効なローマ数字があるかどうかを確認できます。の使用例を見ることができますNSRegularExpression:NSRegularExpression検証メール
正規表現は、次のように投稿されている必要が あります。有効なローマ数字のみを正規表現と一致させるにはどうすればよいですか。
于 2012-10-23T10:03:53.323 に答える
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
}
于 2012-10-23T09:56:01.877 に答える