@property(nonatomic,assign)BOOLisHaveDian;
@property(nonatomic,assign)BOOLisFirstZero;
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string {
if(textField ==self.amountTextField) {
if([textField.textrangeOfString:@"."].location==NSNotFound) {
_isHaveDian=NO;
}
if([textField.textrangeOfString:@"0"].location==NSNotFound) {
_isFirstZero=NO;
}
if([stringlength]>0)
{
unicharsingle=[stringcharacterAtIndex:0];//當(dāng)前輸入的字符
if((single >='0'&& single<='9') || single=='.')//數(shù)據(jù)格式正確
{
if([textField.textlength]==0){
if(single =='.'){
//首字母不能為小數(shù)點
returnNO;
}
if(single =='0') {
_isFirstZero=YES;
returnYES;
}
}
if(single=='.'){
if(!_isHaveDian)//text中還沒有小數(shù)點
{
_isHaveDian=YES;
returnYES;
}else{
returnNO;
}
}elseif(single=='0'){
if((_isFirstZero&&_isHaveDian)||(!_isFirstZero&&_isHaveDian)) {
//首位有0有.(0.01)或首位沒0有.(10200.00)可輸入兩位數(shù)的0
if([textField.textisEqualToString:@"0.0"]){
returnNO;
}
NSRangeran=[textField.textrangeOfString:@"."];
inttt=(int)(range.location-ran.location);
if(tt <=2){
returnYES;
}else{
returnNO;
}
}elseif(_isFirstZero&&!_isHaveDian){
//首位有0沒.不能再輸入0
returnNO;
}else{
returnYES;
}
}else{
if(_isHaveDian){
//存在小數(shù)點,保留兩位小數(shù)
NSRangeran=[textField.textrangeOfString:@"."];
inttt= (int)(range.location-ran.location);
if(tt <=2){
returnYES;
}else{
returnNO;
}
}elseif(_isFirstZero&&!_isHaveDian){
//首位有0沒點
returnNO;
}else{
returnYES;
}
}
}else{
//輸入的數(shù)據(jù)格式不正確
returnNO;
}
}else{
returnYES;
}
}
returnYES;
}