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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容