如何检查UITextField
的文字是否为双倍?
如果输入的文本字段值是否为有效的double值,则需要进行简单验证?
有效的双倍值:1.00
,1.01
或1.00001
无效的双倍值:.0.1
,.001.11
,1.0.1
或1...0
等。
mytxtfield.text=@"12.00"; //ok
mytxtfield.text=@"1.2..0"; // is invalid and so on
编辑:我的回答是有效的,而不是sahzad ali
//------------
-(BOOL)isvalidDouble:(NSString*)txtstring
{
NSArray *dotSeparratedArray = [txtstring componentsSeparatedByString:@"."];
NSInteger count=[dotSeparratedArray count];
count=count-1;
if(count >1)
{
return TRUE ; //invalid
}
return FALSE; //valid
}
答案 0 :(得分:1)
您可以限制用户输入多个点,或者您可以在TextFieldDidEndEditing方法中使用相同的逻辑。如果componentsSeparatedByString返回大于2,则表示有多个点。
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *myString = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSArray *dotSeparratedArray = [myString componentsSeparatedByString:@"."];
if([dotSeparratedArray count] >= 2)
{
NSString *string1=[NSString stringWithFormat:@"%@",[dotSeparratedArray objectAtIndex:1]];
return !([string1 length]>1);
}
return YES;
}
答案 1 :(得分:1)
我不知道这是否符合您的目的,但您可以使用NSNumberFormatter
并根据您的需要对其进行自定义:
NSNumberFormatter *myFormatter = [[NSNumberFormatter alloc] init];
[myFormatter setFormatWidth:7];
[myFormatter setPaddingCharacter:@"0"];
[myFormatter setMinimumSignificantDigits:0];
[myFormatter setMinimum:@0];
[myFormatter setMaximum:@9999999];
[myClientIDTextField setFormatter:myFormatter];