iOS UITextField 显示银行卡格式的方法

下面小编就为大家分享一篇iOS UITextField 显示银行卡格式的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

输入框显示银行卡格式,即为每隔4位出现一个空格,

下面使用UITextFieldDelegate,编码实现:

首先引用使用代理

类名 ()<UITextFieldDelegate>
self.textField.delegate = self;

使用代理方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
  if (textField == self.contentTextField) {
    // 4位分隔银行卡卡号
    NSString *text = [textField text];
    NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789\b"];
    string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];
    if ([string rangeOfCharacterFromSet:[characterSet invertedSet]].location != NSNotFound) {
      return NO;
    }
    text = [text stringByReplacingCharactersInRange:range withString:string];
    text = [text stringByReplacingOccurrencesOfString:@" " withString:@""];
    NSLog(@"%@",text);
//    text为输入框内的文本,没有“ ”的内容
    NSString *newString = @"";
    while (text.length > 0) {
      NSString *subString = [text substringToIndex:MIN(text.length, 4)];
      newString = [newString stringByAppendingString:subString];
      if (subString.length == 4) {
        newString = [newString stringByAppendingString:@" "];
      }
      text = [text substringFromIndex:MIN(text.length, 4)];
    }
    newString = [newString stringByTrimmingCharactersInSet:[characterSet invertedSet]];
    if ([newString stringByReplacingOccurrencesOfString:@" " withString:@""].length >= 21) {
      return NO;
    }
    [textField setText:newString];
    return NO;
  }
  return YES;
}

使用以上方法即可实现UITextField 显示银行卡格式。

这篇iOS UITextField 显示银行卡格式的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持北冥有鱼。

您可能感兴趣的文章:

  • iOS 中 使用UITextField格式化银行卡号码的解决方案
  • iOS UITextField最大字符数和字节数的限制详解

相关推荐:

如何在Python中自定义NumPy的打印格式以方便调试?

np.set_printoptions()可直接控制NumPy数组显示格式;默认格式因小数位不一致、科学计数法混用及自动截断而影响调试效率;关键参数需协同设置,如precision控制有效位数、suppress禁用科学计数法、threshold避免省略、linewidth防换行混乱、floatmod...

怎样在Python Flask中自定义响应状态码_返回tuple元组格式

状态码必须放在元组的第二个位置;三元组格式为(body,status,headers),顺序不可颠倒,headers须为字典或类字典对象。 Flask中返回tuple元组时状态码写在哪一位 Flask的视图函数返回tuple时,状态码必须放在**第二个位置**(索引为1),且该值必须是整数或字符串形...

Python怎么装whl文件_pip安装本地whl格式库图文教程

报错“notasupportedwheelonthisplatform”主因是.whl文件与当前Python环境(版本、ABI、平台)不匹配;需用pipdebug查看标签,严格核对文件名三段标识,并优先从PyPI下载对应版本。 pipinstall本地.whl文件报错“notasupportedwh...

Python爬虫如何过滤无效链接_使用正则表达式校验URL格式

urllib.parse.urlparse比正则更可靠,因其严格遵循RFC3986解析URL结构,能正确处理localhost、IDN域名、中文路径等复杂情况,而正则易漏判或误杀且难以覆盖所有合法格式。 为什么urllib.parse.urlparse比正则更可靠? 直接用正则校验URL格式容易漏判...