您的位置:首页 > 移动开发 > IOS开发

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

2018-01-22 09:43 477 查看
要求:
1.第一个首字母不能是小数点
2.最大限制是10000
3.保留小数点后两位

 <UITextFieldDelegate>

_testText.delegate
= self;

- (BOOL)textField:(UITextField
*)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString
*)string {
       
   
NSString
*amountText = _testText.text;
NSString
*regStr = @"^([1-9][\\d]{0,100}|0)(\\.[\\d]{0,1})?$";
NSPredicate
*predicate = [NSPredicate
predicateWithFormat:@"SELF
MATCHES %@", regStr];
BOOL
match = [predicate evaluateWithObject:amountText];
if
([string isEqualToString:@""])
return
YES;
   
//始终允许用户删除
       
unichar
single = [string characterAtIndex:0];//当前输入的字符

   
if([textField.text
length]
== 0){
                       
if(single
== '.')
{
                            [SVProgressHUD
showErrorWithStatus:@"第一个数字不能为小数点"];
       

                            [textField.text
stringByReplacingCharactersInRange:range
withString:@""];
                           
return
NO;
                        }
    }
   
NSString
*tmpStr = [amountText stringByAppendingString:string];
   
NSString
*numStr = [[tmpStr componentsSeparatedByString:@"."]
firstObject];
   
NSInteger
amount = [numStr integerValue];
   
if
(([amountText integerValue]
== 10000)
&& (![string isEqualToString:@""]))
return
NO;
   
BOOL
result = [amountText isEqualToString:@""]
? YES
: (match && ((amount <= 10000)
|| [string isEqualToString:@"."]));
   
return
result;
   

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: