- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if ([textField.text rangeOfString:@"."].location == NSNotFound) { isHaveDian = NO; } if ([string length] > 0) { unichar single = [string characterAtIndex:0];//當前輸入的字元 if ((single >= '0' && single <= '9') || single == '.')//資料格式正確 { //首字母不能為0和小數點 if([textField.text length] == 0) { if(single == '.') { [self showMyMessage:@"親,第一個數字不能為小數點!"]; [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } if (single == '0') { [self showMyMessage:@"親,第一個數字不能為0!"]; [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } } //輸入的字元是否是小數點 if (single == '.') { if(!isHaveDian)//text中還沒有小數點 { isHaveDian = YES; return YES; }else{ [self showMyMessage:@"親,您已經輸入過小數點了!"]; [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } }else{ if (isHaveDian) {//存在小數點 //判斷小數點的位元 NSRange ran = [textField.text rangeOfString:@"."]; if (range.location - ran.location <= 2) { return YES; }else{ [self showMyMessage:@"親,您最多輸入兩位小數!"]; return NO; } }else{ return YES; } } }else{//輸入的資料格式不正確 [self showMyMessage:@"親,您輸入的格式不正確!"]; [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } } else { return YES; }}-(void)showMyMessage:(NSString*)aInfo { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:aInfo delegate:self cancelButtonTitle:@"確定" otherButtonTitles:nil, nil]; [alertView show];}