实现功能:
1. 可以输入整数
2. 可以输入一位和两位小数
3. 最多能输入一个小数点
4. 整数部分避免出现001,032,这种情况
金额输入限制:整数部分10位数,最多保留两位小数
实现方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSString *toString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if ([toString length]) {
NSString *regex = @"^(([0]|(0[.]\\d{0,2}))|([1-9]\\d{0,9}(([.]\\d{0,2})?)))?";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
BOOL flag = [pred evaluateWithObject:toString];
if (!flag) {
return NO;
}
}
return YES;
}
这是目前能想到的正则,不算简易,还好全面,如果有更好的正则判断,请留言