欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS 中 使用UITextField格式化銀行卡號碼的解決方案

 更新時間:2016年12月14日 09:12:18   作者:烏鴉白WHITECROW  
今天小編給大家分享ios中使用UITextField格式化銀行卡號碼的實現思路詳解,非常不錯,具有參考借鑒價值,需要的朋友參考下

今天做格式化銀行卡,避免重復造輪子,找度娘查了下,看到一個不錯的實現方式,記錄下來,并附帶實現思路

#pragma mark - UITextFieldDelegate UITextField鍵入字符后調用
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
 //拿到為改變前的字符串
 NSString *text = [textField text];
 //鍵入字符集,\b標示刪除鍵
 NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789\b"];
 //對當前鍵入字符進行空格過濾
 string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];
 //invertedSet會對當前結果集取反,檢查當前鍵入字符是否在字符集合中,如果不在則直接返回NO 不改變textField值
 if ([string rangeOfCharacterFromSet:[characterSet invertedSet]].location != NSNotFound) {
 return NO;
 }
 //增加當前鍵入字符在改變前的字符串尾部
 text = [text stringByReplacingCharactersInRange:range withString:string];
 //再次確認去掉字符串中空格
 text = [text stringByReplacingOccurrencesOfString:@" " withString:@""];
 //初始化字符用來保存格式化后的字符串
 NSString *newString = @"";
 //while中對text進行格式化
 while (text.length > 0) {
 //按4位字符進行截取,如果當前字符不足4位則按照當前字符串的最大長度截取
 NSString *subString = [text substringToIndex:MIN(text.length, 4)];
 //將截取后的字符放入需要格式化的字符串中
 newString = [newString stringByAppendingString:subString];
 if (subString.length == 4) {
  //截取的字符串長度滿4位則在后面增加一個空格符
  newString = [newString stringByAppendingString:@" "];
 }
 //將text中截取掉字符串去掉
 text = [text substringFromIndex:MIN(text.length, 4)];
 }
 //再次確認過濾掉除指定字符以外的字符
 newString = [newString stringByTrimmingCharactersInSet:[characterSet invertedSet]];
 //國內銀行卡一般為16~19位 格式化后增加4個空格 也就是最多23個字符
 if (newString.length > 23) {
 return NO;
 }
 //手動對textField賦值
 [textField setText:newString];
 //返回NO 則不通過委托自動往當前字符后面增加字符,達到格式化效果
 return NO;
}

相關文章

  • iOS實現數字倍數動畫效果

    iOS實現數字倍數動畫效果

    在iOS開發(fā)中,制作動畫效果是最讓開發(fā)者享受的環(huán)節(jié)之一,下面這篇文章主要給大家介紹了關于iOS實現數字倍數動畫效果的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-02-02
  • iOS 漢字的拼音

    iOS 漢字的拼音

    本文通過一段代碼給代碼介紹了ios漢字的拼音知識及將漢字轉拼音的代碼,非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-08-08
  • ios啟動頁強制豎屏(進入App后允許橫屏與豎屏)

    ios啟動頁強制豎屏(進入App后允許橫屏與豎屏)

    最近工作遇到這樣一個需要,當進入啟動頁需要強制豎屏,而進入APP后就允許橫屏與豎屏,通過查找相關的資料找到了解決的方法,所以將實現的方法整理后分享出來,需要的朋友們可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • IOS TextFiled與TextView 鍵盤的收起以及處理鍵盤遮擋

    IOS TextFiled與TextView 鍵盤的收起以及處理鍵盤遮擋

    這篇文章主要介紹了IOS TextFiled與TextView 鍵盤的收起以及處理鍵盤遮擋的相關資料,需要的朋友可以參考下
    2016-12-12
  • 詳解iOS App設計模式開發(fā)中對于享元模式的運用

    詳解iOS App設計模式開發(fā)中對于享元模式的運用

    這篇文章主要介紹了iOS App設計模式開發(fā)中對于享元模式的運用,示例代碼為傳統的Objective-C,需要的朋友可以參考下
    2016-04-04
  • iOS中獲取系統相冊中的圖片實例

    iOS中獲取系統相冊中的圖片實例

    這篇文章主要介紹了iOS中獲取系統相冊中的圖片實例,具有一定的參考價值沒有需要的朋友可以了解一下。
    2016-11-11
  • IOS開發(fā)Objective-C?Runtime使用示例詳解

    IOS開發(fā)Objective-C?Runtime使用示例詳解

    這篇文章主要為大家介紹了IOS開發(fā)Objective-C?Runtime使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • IOS 照片編輯的view封裝的實例詳解

    IOS 照片編輯的view封裝的實例詳解

    這篇文章主要介紹了IOS 照片編輯的view封裝的實例詳解的相關資料,這里提供實例幫助大家實現這樣的功能,需要的朋友可以參考下
    2017-08-08
  • IOS安裝包比Android容量大的原因

    IOS安裝包比Android容量大的原因

    這篇文章主要介紹了為什么IOS安裝包比Android容量大的原因,如果你是一個IOS或者安卓開發(fā)者,學習下相關知識吧。
    2018-02-02
  • 蘋果公司推出的新編程語言Swift簡介和入門教程

    蘋果公司推出的新編程語言Swift簡介和入門教程

    這篇文章主要介紹了蘋果公司推出的新編程語言Swift簡介和入門教程,Swift是蘋果于WWDC 2014.6.3發(fā)布的編程語言,主要用來替代Objective-C,需要的朋友可以參考下
    2014-06-06

最新評論