遵循代理,直接cv
```
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString*)string
{
//新输入的
if(string.length==0) {
returnYES;
}
//第一个参数,被替换字符串的range
//第二个参数,即将键入或者粘贴的string
//返回的是改变过后的新str,即textfield的新的文本内容
NSString*checkStr = [textField.textstringByReplacingCharactersInRange:rangewithString:string];
//正则表达式(只支持两位小数)
NSString *regex = @"^\\-?([1-9]\\d*|0)(\\.\\d{0,2})?$";
//判断新的文本内容是否符合要求
return[selfisValid:checkStrwithRegex:regex];
}
//检测改变过的文本是否匹配正则表达式,如果匹配表示可以键入,否则不能键入
- (BOOL) isValid:(NSString*)checkStr withRegex:(NSString*)regex
{
NSPredicate*predicte = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",regex];
return[predicteevaluateWithObject:checkStr];
}
```