亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

iOS 中 使用UITextField格式化銀行卡號(hào)碼的解決方案

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

今天做格式化銀行卡,避免重復(fù)造輪子,找度娘查了下,看到一個(gè)不錯(cuò)的實(shí)現(xiàn)方式,記錄下來,并附帶實(shí)現(xiàn)思路

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

相關(guān)文章

  • iOS實(shí)現(xiàn)數(shù)字倍數(shù)動(dòng)畫效果

    iOS實(shí)現(xiàn)數(shù)字倍數(shù)動(dòng)畫效果

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

    iOS 漢字的拼音

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

    ios啟動(dòng)頁強(qiáng)制豎屏(進(jìn)入App后允許橫屏與豎屏)

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

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

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

    詳解iOS App設(shè)計(jì)模式開發(fā)中對(duì)于享元模式的運(yùn)用

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

    iOS中獲取系統(tǒng)相冊中的圖片實(shí)例

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

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

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

    IOS 照片編輯的view封裝的實(shí)例詳解

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

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

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

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

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

最新評(píng)論