iOS中UITextField输入判断小数点后两位
2019-09-25 本文已影响0人
小六玩的并不六
在输入金额的UITextField中,要给予三个规则的判断
-
只能输入数字(可以通过设置键盘类型为Decimal Pad)
-
小数点只能有一个
-
小数点后最多有两位数字 (可以通过正则表达式或者长度判断)
-
和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;
}