微信發紅包UITextField金額輸入格式化
UITextField是iOS上常用的輸入框,對其輸入進行格式化顯示是常態,這兒羅列兩種常用格式化:
微信發紅包UITextField金額輸入格式化,
銀行卡格式化
消化後就可以自己寫其他格式化樣式。
微信發紅包UITextField金額輸入格式化
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *text = _textField.text;
NSString *decimalSeperator = @".";
NSCharacterSet *charSet = nil;
NSString *numberChars = @"0123456789";
if ([string isEqualToString:decimalSeperator] && [text length] == 0) {
return NO;
}
NSRange decimalRange = [text rangeOfString:decimalSeperator];
BOOL isDecimalNumber = (decimalRange.location != NSNotFound);
if (isDecimalNumber) {
charSet = [NSCharacterSet characterSetWithCharactersInString:numberChars];
if ([string rangeOfString:decimalSeperator].location != NSNotFound) {
return NO;
}
}
else {
numberChars = [numberChars stringByAppendingString:decimalSeperator];
charSet = [NSCharacterSet characterSetWithCharactersInString:numberChars];
}
NSCharacterSet *invertedCharSet = [charSet invertedSet];
NSString *trimmedString = [string stringByTrimmingCharactersInSet:invertedCharSet];
text = [text stringByReplacingCharactersInRange:range withString:trimmedString];
if (isDecimalNumber) {
NSArray *arr = [text componentsSeparatedByString:decimalSeperator];
if ([arr count] == 2) {
if ([arr[1] length] > 2) {
return NO;
}
}
}
textField.text = text;
return NO;
}
銀行卡格式化
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *text = [textField text];
NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];
if ([string rangeOfCharacterFromSet:[characterSet invertedSet]].location != NSNotFound) {
return NO;
}
text = [text stringByReplacingCharactersInRange:range withString:string];
text = [text stringByReplacingOccurrencesOfString:@" " withString:@""];
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.length >= 24) {
return NO;
}
textField.text = newString;
return NO;
}
相關文章
- iOS金額輸入限制iOS
- EditText輸入金額型別型別
- js核算輸入是否為金額JS
- iOS開發若何更好的限制UITextField的輸入長度?iOSUI
- 微信商戶 API 發紅包!API
- UITextField只允許輸入中,英文,數字UI
- JavaScript將輸入的數字金額轉換成對應的中文大寫金額JavaScript
- C++格式化輸入輸出C++
- 一個PHP檔案搞定微信支付系列之現金紅包PHP
- 微信公眾號下發紅包 -- PHPPHP
- 淺析微信支付:商戶平臺開通現金紅包、指定使用者發放、紅包記錄查詢
- 網路支付新規出臺:支付寶微信發大額紅包需認證
- iOS逆向(7)-LLDB,自制LLDB指令碼,竄改微信紅包金額iOSLLDB指令碼
- [vue] 表單輸入格式化,中文輸入法異常Vue
- iOS -UITextField/UITextView之鍵盤遮擋輸入框解決方法iOSUITextView
- 微信小程式搶紅包高併發設計微信小程式
- 微信紅包介面呼叫(rails)AI
- 微信高併發資金交易系統設計方案——百億紅包背後的技術支撐
- 開發微信搶紅包軟體被罰475萬!
- 騰訊筆試題--微信紅包筆試
- UITextView UITextField限制輸入字數以及精準剩餘字數顯示UITextView
- 第四章 字串和格式化輸入/輸出字串
- iOS-銀行卡輸入\輸出格式化顯示iOS
- 揭祕微信紅包架構、搶紅包演算法和高併發和降級方案架構演算法
- SAP UI5 貨幣金額顯示的格式化邏輯UI
- 微信紅包體系設計分析
- 微信紅包的概率測試程式
- 高仿微信搶紅包動畫特效動畫特效
- JavaScript金錢格式化JavaScript
- 聊天室軟體原始碼中封裝一個金額輸入框元件的實現原始碼封裝元件
- javascript金額每隔三位加逗號格式化程式碼例項JavaScript
- UITextFieldUI
- Android高仿微信表情輸入與鍵盤輸入詳解Android
- PHP 微信支付通知金額不一致的問題PHP
- jQuery輸入時間日期自動格式化效果jQuery
- 如何做微信紅包封面專案?
- 微信小程式搶紅包實現效果微信小程式
- plsql小寫金額轉大寫金額函式SQL函式