分享

iOS UITextField 只能输入数字和小数点,只能有两位小数

 没原创_去搜索 2015-08-24

转自:http://blog.csdn.net/chengyakun11/article/details/8494292

 分类: iphone ios

 2408人阅读 评论(2) 收藏 举报
  1. //textField.text 输入之前的值         string 输入的字符  
  2. - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string  
  3. {  
  4.     if ([textField1.text rangeOfString:@"."].location==NSNotFound) {  
  5.         isHaveDian=NO;  
  6.     }  
  7.     if ([string length]>0)  
  8.     {  
  9.         unichar single=[string characterAtIndex:0];//当前输入的字符  
  10.         if ((single >='0' && single<='9') || single=='.')//数据格式正确  
  11.         {  
  12.             //首字母不能为0和小数点  
  13.             if([textField1.text length]==0){  
  14.                 if(single == '.'){  
  15.                    [self alertView:@"亲,第一个数字不能为小数点"];  
  16.                     [textField1.text stringByReplacingCharactersInRange:range withString:@""];  
  17.                     return NO;  
  18.   
  19.                 }  
  20.                 if (single == '0') {  
  21.                     [self alertView:@"亲,第一个数字不能为0"];  
  22.                     [textField1.text stringByReplacingCharactersInRange:range withString:@""];  
  23.                     return NO;  
  24.   
  25.                 }  
  26.             }  
  27.             if (single=='.')  
  28.             {   
  29.                 if(!isHaveDian)//text中还没有小数点  
  30.                 {  
  31.                     isHaveDian=YES;  
  32.                     return YES;  
  33.                 }else  
  34.                 {  
  35.                     [self alertView:@"亲,您已经输入过小数点了"];  
  36.                     [textField1.text stringByReplacingCharactersInRange:range withString:@""];  
  37.                     return NO;  
  38.                 }  
  39.             }  
  40.             else  
  41.             {  
  42.                 if (isHaveDian)//存在小数点  
  43.                 {  
  44.                     //判断小数点的位数  
  45.                     NSRange ran=[textField1.text rangeOfString:@"."];  
  46.                     int tt=range.location-ran.location;  
  47.                     if (tt <= 2){  
  48.                         return YES;  
  49.                     }else{  
  50.                         [self alertView:@"亲,您最多输入两位小数"];  
  51.                         return NO;  
  52.                     }  
  53.                 }  
  54.                 else  
  55.                 {  
  56.                     return YES;  
  57.                 }  
  58.             }  
  59.         }else{//输入的数据格式不正确  
  60.             [self alertView:@"亲,您输入的格式不正确"];  
  61.             [textField1.text stringByReplacingCharactersInRange:range withString:@""];  
  62.             return NO;  
  63.         }  
  64.     }  
  65.     else  
  66.     {  
  67.         return YES;  
  68.     }  
  69.       
  70. }  


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多