iOS中UITextField输入判断小数点后两位

Posted 孙富有(iOS工程师)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS中UITextField输入判断小数点后两位相关的知识,希望对你有一定的参考价值。

在输入金额的UITextField中,要给予三个规则的判断 
1. 只能输入数字(可以通过设置键盘类型为Decimal Pad) 
2. 小数点只能有一个 
3. 小数点后最多有两位数字 (可以通过正则表达式或者长度判断)

2. 3. 的代码 (首先引入UITextFieldDelegate,指定代理为自己)

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    if (textField == self.tfWithdrawalAmount) {
        //如果输入的是“.”  判断之前已经有"."或者字符串为空
        if ([string isEqualToString:@"."] && ([textField.text rangeOfString:@"."].location != NSNotFound || [textField.text isEqualToString:@""])) {
            return NO;
        }
        //拼出输入完成的str,判断str的长度大于等于“.”的位置+4,则返回false,此次插入string失败 ("379132.424",长度10,"."的位置6, 10>=6+4)
        NSMutableString *str = [[NSMutableString alloc] initWithString:textField.text];
        [str insertString:string atIndex:range.location];
        if (str.length >= [str rangeOfString:@"."].location+4){
            return NO;
        }
    }
    return YES;
}



以上是关于iOS中UITextField输入判断小数点后两位的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发-限制文本框输入两位小数和最大值

iOS “金额” 输入框的设置

javascript判断输入小数点后是不是为两位的问题

iOS 限制输入框只能输入小数并且小数点后只能一位

js怎么判断输入的金额只能是小数点前10位,小数点后两位

求一个正则表达式只能输入数字小数点后两位和