text 自动格式化 银行卡号

来源:互联网 发布:招商银行软件怎么注销 编辑:程序博客网 时间:2024/04/27 18:08
  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.     if (newString.length >= 20) {  
  27.         return NO;  
  28.     }  
  29.   
  30.     [textField setText:newString];  
  31.   
  32.     return NO;  
  33. }  
0 0
原创粉丝点击