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

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

 

  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. if (single == '0') {
  20. [self alertView:@"亲,第一个数字不能为0"];
  21. [textField1.text stringByReplacingCharactersInRange:range withString:@""];
  22. return NO;
  23. }
  24. }
  25. if (single=='.')
  26. {
  27. if(!isHaveDian)//text中还没有小数点
  28. {
  29. isHaveDian=YES;
  30. return YES;
  31. }else
  32. {
  33. [self alertView:@"亲,您已经输入过小数点了"];
  34. [textField1.text stringByReplacingCharactersInRange:range withString:@""];
  35. return NO;
  36. }
  37. }
  38. else
  39. {
  40. if (isHaveDian)//存在小数点
  41. {
  42. //判断小数点的位数
  43. NSRange ran=[textField1.text rangeOfString:@"."];
  44. int tt=range.location-ran.location;
  45. if (tt <= 2){
  46. return YES;
  47. }else{
  48. [self alertView:@"亲,您最多输入两位小数"];
  49. return NO;
  50. }
  51. }
  52. else
  53. {
  54. return YES;
  55. }
  56. }
  57. }else{//输入的数据格式不正确
  58. [self alertView:@"亲,您输入的格式不正确"];
  59. [textField1.text stringByReplacingCharactersInRange:range withString:@""];
  60. return NO;
  61. }
  62. }
  63. else
  64. {
  65. return YES;
  66. }
  67. }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值