Ios 如何验证金额文本值

Ios 如何验证金额文本值,ios,objective-c,iphone,uitextfield,Ios,Objective C,Iphone,Uitextfield,我面临的小问题是如何验证UITextField中的金额值。我有一个金额限制,文本存档应大于Rs.10,值之间的范围为Rs.99999。如果用户输入无效金额,如Rs.01,02,04,09,则应避免使用此类数字 我刚刚用简单的方法调用了我的函数,如下所示: if ([amount.text length]>=2 && [amount.text length]<=5) { }else{ UIAlertView *alert = [[UIAlertView

我面临的小问题是如何验证UITextField中的金额值。我有一个金额限制,文本存档应大于Rs.10,值之间的范围为Rs.99999。如果用户输入无效金额,如Rs.01,02,04,09,则应避免使用此类数字

我刚刚用简单的方法调用了我的函数,如下所示:

 if ([amount.text length]>=2 && [amount.text length]<=5) {

}else{


    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"error" message:@"Plz enter the amout Min 10Rs" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
    return;
}

如果([amount.text length]>=2&&[amount.text length]请查看以下代码:

if ([amount.text doubleValue]>=10 && [amount.text doubleValue]<99999){

}
else{
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"error" message:@"Plz enter the amout Min 10Rs" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
    return;
}

如果([amount.text doubleValue]>=10&&[amount.text doubleValue]您应该真正使用进行解析。它具有高度可配置性,并且在输入损坏时很容易说出。除此之外,它还有一个
最小值
最大值
属性。

int val=amount.text.integerValue
 int val = amount.text.integerValue
if (val > 10 && val < 99999){

}
else{


    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"error" message:@"Plz enter the amout Min 10Rs" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
}
如果(val>10&&val<99999){ } 否则{ UIAlertView*alert=[[UIAlertView alloc]initWithTitle:@“错误”消息:@“请输入最小值10Rs”委托:自取消按钮:@“确定”其他按钮:无,无]; [警报显示]; }
您应该使用:

- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string 
在这里,您可以完全控制文本字段中显示的内容。由于该方法返回一个
BOOL
值,因此,如果替换字符串满足您的要求,您可以接受它(通过返回
YES
),或者通过返回
NO
保留旧文本

不要忘记将委托分配给
UITextField
,以便调用此方法

有关更多信息,请查看:

编辑:

可能的解决办法:

  • 如果文本字段应仅采用数字字符,则应将键盘类型设置为:

    textfield.keyboardType=UIKeyboardTypeNumberPad;

  • 在上述方法的实现中,您可以编写:

    NSInteger value=[textField.text stringByReplacingCharactersInRange:range with string:string].integerValue;
    
    如果(值>=10&&value使用下面的代码限制用户输入单个编号和6位数编号

    注意:使用键盘类型作为UIKeyboardTypeNumberPad

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        if (textField.text.length >= 5 && range.length < 2)
        {
            return NO; //Not allowing the user to enter single character or greater than 5 characters
        }
        else
        {
        return YES;
        }
    
    }
    
    -(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串
    {
    如果(textField.text.length>=5&&range.length<2)
    {
    返回否;//不允许用户输入单个字符或大于5个字符
    }
    其他的
    {
    返回YES;
    }
    }
    
    希望它能帮助你