.h檔案(繼承與uitextfield自定義乙個textfield)
#import #define partitionstr @" "
@inte***ce cqphonenumtf : uitextfield
/** 去掉格式的**號碼 */
@property (nonatomic, strong) nsstring *plainphonenum;
@end
.m檔案:
#import "cqphonenumtf.h"
@inte***ce cqphonenumtf ()@end
@implementation cqphonenumtf
- (nsstring *)plainphonenum
- (void)awakefromnib
- (instancetype)initwithframe:(cgrect)frame
return self;
}- (bool)textfield:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:(nsstring *)string
if (textfield)
return yes;
}//從中間刪除
else
[textfield deletebackward];
textfield.text = [self _parsestring:textfield.text];
uitextposition *newpos = [textfield positionfromposition:textfield.beginningofdocument offset:offset];
textfield.selectedtextrange = [textfield textrangefromposition:newpos toposition:newpos];
return no;}}
else if (range.length > 1)
[textfield deletebackward];
textfield.text = [self _parsestring:textfield.text];
nsinteger offset = range.location;
if (range.location == 3 || range.location == 8)
if (islast) else
return no;
}else
}else if(string.length >0)
if(![self _isnum:string])
[textfield inserttext:string];
textfield.text = [self _parsestring:textfield.text];
nsinteger offset = range.location + string.length;
if (range.location == 3 || range.location == 8)
uitextposition *newpos = [textfield positionfromposition:textfield.beginningofdocument offset:offset];
textfield.selectedtextrange = [textfield textrangefromposition:newpos toposition:newpos];
return no;
}else
}return yes;
}- (nsstring*)_parsestring:(nsstring*)string
nsmutablestring* mstr = [nsmutablestring stringwithstring:[string stringbyreplacingoccurrencesofstring:partitionstr withstring:@""]];
if (mstr.length >3) if (mstr.length > 8)
return mstr;
}/** 獲取正常**號碼(去掉空格) */
- (nsstring*)_nonespasestring:(nsstring*)string
- (bool)_isnum:(nsstring *)checkednumstring
checkednumstring = [checkednumstring stringbytrimmingcharactersinset:[nscharacterset decimaldigitcharacterset]];
if(checkednumstring.length > 0)
return yes;
}@end
至於呼叫的話,也是非常簡單的,之間將建立控制項時的類名替換為該類的類名即可! Nginx 日誌自動分割
nginx 的日誌都是寫在乙個檔案當中的,不會自動地進行切割,如果訪問量很大的話,將導致日誌檔案容量非常大,不便於管理和造成nginx 日誌寫入效率低下等問題。所以,往往需要要對access log error log日誌進行切割。切割日誌一般利用usr1訊號讓nginx產生新的日誌。例項 123 ...
tomcat日誌自動分割 linux
今天在tomcat上檢視專案日誌的時候,發現catalina.out檔案竟然已經達到202m了,決定做一下日誌的分割.先看了一下crontab任務中,發現有個刪除前10天日誌的自動任務,但是沒有發現切割的自動任務.搜了一下,據說tomcat有預設的日誌分割功能,能每天自動生成類似catalina.2...
使用cronolog自動分割apache的日誌。
為了方便分析 的日誌,需要將apache的日誌按周來分割,網上搜尋了下,cronolog可以完成這個功能,實際操作了下,操作過程中參考了這篇文章 在此,謝謝作者。下面是操作記錄 解壓縮 tar xzvf cronolog 1.6.2.tar gz 進入目錄 cd cronolog 1.6.2 列出所...