#define myDotNumbers @"0123456789.\n"
#define myNumbers @"0123456789\n"
NSInteger strLength = textField.text.length - range.length + string.length;
NSCharacterSet *cs;
NSUInteger nDotLoc = [textField.text rangeOfString:@"."].location;
if (NSNotFound == nDotLoc && 0 != range.location) {
cs = [[NSCharacterSetcharacterSetWithCharactersInString:myNumbers]invertedSet];
if ([string isEqualToString:@"."]) {
return YES;
}
if (strLength>=6) { //小数点前面6位
return NO;
}
}
else {
cs = [[NSCharacterSetcharacterSetWithCharactersInString:myDotNumbers]invertedSet];
if (strLength>=9) {
return NO;
}
}
NSString *filtered = [[stringcomponentsSeparatedByCharactersInSet:cs]componentsJoinedByString:@""];
BOOL basicTest = [string isEqualToString:filtered];
if (!basicTest) {
return NO;
}
if (NSNotFound != nDotLoc && range.location > nDotLoc +2) {//小数点后面两位
return NO;
}
return YES;