一般的都是只能輸入數(shù)字 以及小數(shù)點(diǎn)后兩位
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
? // 判斷是否有小數(shù)點(diǎn)
? if([textField.textcontainsString:@"."]) {
? ? ? self.isHaveDian=YES;
? }else{
? ? ? self.isHaveDian=NO;
? }
? if(string.length>0) {
? ? ? //當(dāng)前輸入的字符
? ? ? unicharsingle = [stringcharacterAtIndex:0];
? ? ? // 不能輸入.0-9以外的字符
? ? ? if(!((single >='0'&& single <='9') || single =='.'))returnNO;
? ? ? // 只能有一個(gè)小數(shù)點(diǎn)
? ? ? if(self.isHaveDian&& single =='.')returnNO;
? ? ? // 如果第一位是.則前面加上0.
? ? ? if((textField.text.length==0) && (single =='.')) {
? ? ? ? ? textField.text=@"0";
? ? ? }
? ? ? // 如果第一位是0則后面必須輸入點(diǎn)窑业,否則不能輸入甘畅。
? ? ? if([textField.texthasPrefix:@"0"]) {
? ? ? ? ? if(textField.text.length>1) {
? ? ? ? ? ? ? NSString*secondStr = [textField.textsubstringWithRange:NSMakeRange(1,1)];
? ? ? ? ? ? ? if(![secondStrisEqualToString:@"."])returnNO;
? ? ? ? ? }else{
? ? ? ? ? ? ? if(![stringisEqualToString:@"."])returnNO;
? ? ? ? ? }
? ? ? }
? ? ? // 小數(shù)點(diǎn)后最多能輸入兩位
? ? ? if(self.isHaveDian) {
? ? ? ? ? NSRangeran = [textField.textrangeOfString:@"."];
? ? ? ? ? // 由于range.location是NSUInteger類(lèi)型的俐芯,所以這里不能通過(guò)(range.location - ran.location)>2來(lái)判斷
? ? ? ? ? if(range.location> ran.location) {
? ? ? ? ? ? ? if([textField.textpathExtension].length>1)returnNO;
? ? ? ? ? }
? ? ? }
? ? }
? ? return YES;
}