iOS 使用UITextField自动格式化银行卡号

本文介绍了一种在iOS应用中实现银行卡号自动格式化的方法。通过将输入的银行卡号每四位分组并添加空格的方式提高输入体验。同时,确保只接受数字输入,并在提交时移除所有空格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码有问题,可参考最新的文章。https://blog.youkuaiyun.com/qq_25303213/article/details/90074174

 

项目中需要输入银行卡,希望自动按照4为分组格式化。

//这里没有增加银行卡长度限制

在确定提交给服务器的时候,重新格式回不带空格的字符串就好了

 

self.textField.text = [self.textField.text stringByReplacingOccurrencesOfString:@" " withString:@""];

 

 

 

 

  1. -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {  
  2.   
  3.    NSString *text = [textField text];  
  4.   
  5.     NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789\b"];  
  6.     string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];  
  7.     if ([string rangeOfCharacterFromSet:[characterSet invertedSet]].location != NSNotFound) {  
  8.         return NO;  
  9.     }  
  10.   
  11.     text = [text stringByReplacingCharactersInRange:range withString:string];  
  12.     text = [text stringByReplacingOccurrencesOfString:@" " withString:@""];  
  13.   
  14.     NSString *newString = @"";  
  15.     while (text.length > 0) {  
  16.         NSString *subString = [text substringToIndex:MIN(text.length, 4)];  
  17.         newString = [newString stringByAppendingString:subString];  
  18.         if (subString.length == 4) {  
  19.             newString = [newString stringByAppendingString:@" "];  
  20.         }  
  21.         text = [text substringFromIndex:MIN(text.length, 4)];  
  22.     }  
  23.   
  24.     newString = [newString stringByTrimmingCharactersInSet:[characterSet invertedSet]];  
  25.   
  26.     [textField setText:newString];  
  27.   
  28.     return NO;  
  29. }  

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值