博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITextField 限制输入金额(项目中遇到判断输入金额)
阅读量:6075 次
发布时间:2019-06-20

本文共 2737 字,大约阅读时间需要 9 分钟。

下面这个限制输入金额限制得很死:

  •  1.要求用户输入首位不能为小数点;
  • 2.小数点后不超过两位,小数点无法输入超过一个;
  • 3.如果首位为0,后面仅能输入小数点;
  • 4.输入金额不超过11位。

 

1 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 2 { 3     if (textField.text.length > 10) { 4         return range.location < 11; 5     }else{ 6         BOOL isHaveDian = YES; 7         if ([textField.text rangeOfString:@"."].location==NSNotFound) { 8             isHaveDian=NO; 9         }10         if ([string length]>0)11         {12             unichar single=[string characterAtIndex:0];//当前输入的字符13             14             if ((single >='0' && single<='9') || single=='.')//数据格式正确15             {16                 //首字母不能为小数点17                 if([textField.text length]==0){18                     if(single == '.'){19                         [textField.text stringByReplacingCharactersInRange:range withString:@""];20                         return NO;21                         22                     }23                 }24                 if([textField.text length]==1 && [textField.text isEqualToString:@"0"]){25                     if(single != '.'){26                         [textField.text stringByReplacingCharactersInRange:range withString:@""];27                         return NO;28                         29                     }30                 }31                 if (single=='.')32                 {33                     if(!isHaveDian)//text中还没有小数点34                     {35                         isHaveDian=YES;36                         return YES;37                     }else38                     {39                         [textField.text stringByReplacingCharactersInRange:range withString:@""];40                         return NO;41                     }42                 }43                 else44                 {45                     if (isHaveDian)//存在小数点46                     {47                         //判断小数点的位数48                         NSRange ran=[textField.text rangeOfString:@"."];49                         NSInteger tt=range.location-ran.location;50                         if (tt <= 2){51                             return YES;52                         }else{53                             return NO;54                         }55                     }56                     else57                     {58                         return YES;59                     }60                 }61             }else{
//输入的数据格式不正确62 [textField.text stringByReplacingCharactersInRange:range withString:@""];63 return NO;64 }65 }66 else67 {68 return YES;69 }70 }71 }

 

转载于:https://www.cnblogs.com/Crazy-ZY/p/5613592.html

你可能感兴趣的文章
在DDMS中访问data目录【adb shell命令】
查看>>
JAVA 8 Stream小计
查看>>
用C读取INI配置文件 (可在linux平台上用)
查看>>
aspose实现Office转Pdf
查看>>
类与类之间的关系
查看>>
一个单词的记忆之旅
查看>>
安卓加载大图片学习笔记
查看>>
python 读写 json 文件
查看>>
Python获取当前路径下的配置文件
查看>>
伍雨霏-懂游戏的云服务如何保驾护航
查看>>
移动互联网商业发展前景广阔-CNNIC 高级分析师 喻重光
查看>>
【百度地图-安卓SDK】从头开始写android程序
查看>>
rxbus
查看>>
MonkeyRunner Command Summary
查看>>
ios nonatomic + strong + ARC
查看>>
DXperience汉化资源分享
查看>>
MySQL的btree索引和hash索引的区别
查看>>
开源 免费 java CMS - FreeCMS1.2-标签 mailPage
查看>>
sql server 通过sql server 协议进行登录的解析
查看>>
按下返回键,不直接退出而是弹出对话框
查看>>