使用UITextField限制輸入金額是正確小數(shù)
要判斷輸入金額為正確金額的方法有兩個,一個是用正則表達(dá)式,另一個就是用textfield的代理方法
有時候難免遇到這樣的需求,不符合規(guī)則的金額就不讓輸入時,那用這種方法比較合理
如果設(shè)置輸入鍵盤為Decimal Pad時,輸入為數(shù)字和小數(shù)點;如果設(shè)置鍵盤為Number Pad時,輸入為純數(shù)字
非以上情況時,那要判斷輸入時是否為合理輸入,如代碼里
(single >='0' && single<='9') || single=='.'
如果本身僅僅是輸入數(shù)字或者小數(shù)點而已,那么可以去掉這個判斷條件
下面這個限制輸入金額限制得很死:
1.要求用戶輸入首位不能為小數(shù)點;
2.小數(shù)點后不超過兩位,小數(shù)點無法輸入超過一個;
3.如果首位為0,后面僅能輸入小數(shù)點
4.輸入金額不超過11位
這個輸入首位不能為0時,可以在限制首位不能為“.”的地方加上,可以根據(jù)自己需要修改.
if(single == '.'){ [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; }
但這個金額能輸入0.00之類的,輸入需要的話還得在發(fā)生請求數(shù)據(jù)錢判斷空和輸入最低金額允許,不符合時就return;
限制如下:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if (textField.text.length > ) { return range.location < ; }else{ BOOL isHaveDian = YES; if ([textField.text rangeOfString:@"."].location==NSNotFound) { isHaveDian=NO; } if ([string length]>) { unichar single=[string characterAtIndex:];//當(dāng)前輸入的字符 if ((single >='' && single<='') || single=='.')//數(shù)據(jù)格式正確 { //首字母不能為小數(shù)點 if([textField.text length]==){ if(single == '.'){ [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } } if([textField.text length]== && [textField.text isEqualToString:@""]){ if(single != '.'){ [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } } if (single=='.') { if(!isHaveDian)//text中還沒有小數(shù)點 { isHaveDian=YES; return YES; }else { [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } } else { if (isHaveDian)//存在小數(shù)點 { //判斷小數(shù)點的位數(shù) NSRange ran=[textField.text rangeOfString:@"."]; NSInteger tt=range.location-ran.location; if (tt <= ){ return YES; }else{ return NO; } } else { return YES; } } }else{//輸入的數(shù)據(jù)格式不正確 [textField.text stringByReplacingCharactersInRange:range withString:@""]; return NO; } } else { return YES; } } }
以上所述是小編給大家介紹的以上所述是小編給大家介紹的使用UITextField限制輸入金額是正確小數(shù)的相關(guān)知識,希望對大家
有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Android使用Notification實現(xiàn)普通通知欄(一)
這篇文章主要為大家詳細(xì)介紹了Android使用Notification實現(xiàn)普通通知欄,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12Android通過反射實現(xiàn)強制停止應(yīng)用程序的方法
這篇文章主要介紹了Android通過反射實現(xiàn)強制停止應(yīng)用程序的方法,涉及Android的反射機制與進程操作的相關(guān)技巧,需要的朋友可以參考下2016-02-02擁抱kotlin之如何習(xí)慣使用kotlin高階函數(shù)
這篇文章主要給大家介紹了關(guān)于擁抱kotlin之如何習(xí)慣使用kotlin高階函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用kotlin具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Android Studio如何為Activity添加自定義注解信息
好久沒用寫文章了,今天給大家分享Android Studio如何為Activity添加自定義注解信息,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-06-06Android?Flutter實現(xiàn)評分組件的示例代碼
在很多應(yīng)用中,我們都需要收集用戶的評分,比如商品滿意度、配送滿意度、應(yīng)用使用體驗等等。本文就利用flutter_rating_bar實現(xiàn)簡易的評分組件,感興趣的可以2022-11-11