限制 输入框 只允许输入 两位小数
2019-07-31 本文已影响0人
iOS_林亦辰
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
//删除处理
if ([string isEqualToString:@""]) {
return YES;
}
//首位不能为.号
if (range.location == 0 && [string isEqualToString:@"."]) {
return NO;
}
return [self isRightInPutOfString:textField.text withInputString:string range:range];
}
- (BOOL)isRightInPutOfString:(NSString *) string withInputString:(NSString *) inputString range:(NSRange) range{
//判断只输出数字和.号
NSString *passWordRegex = @"[0-9\\.]";
NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
if (![passWordPredicate evaluateWithObject:inputString]) {
return NO;
}
//逻辑处理
if ([string containsString:@"."]) {
if ([inputString isEqualToString:@"."]) {
return NO;
}
//限制两位小数
NSRange subRange = [string rangeOfString:@"."];
if (range.location - subRange.location > 2) {
return NO;
}
}
return YES;
}