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