是否有任何方法可用于检查UITextField是否包含罗马数字,如 i、ii、iii、iv...等???
问问题
580 次
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 validate email
您的正则表达式应该类似于以下内容: 如何仅将有效的罗马数字与正则表达式匹配?
于 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 回答