iOS中UITextField輸入判斷小數點後兩位

在輸入金額的UITextField中,要給予三個規則的判斷
1. 只能輸入數字(可以通過設置鍵盤類型爲Decimal Pad)
2. 小數點只能有一個
3. 小數點後最多有兩位數字 (可以通過正則表達式或者長度判斷)

2. 3. 的代碼 (首先引入UITextFieldDelegate,指定代理爲自己)

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    if (textField == self.tfWithdrawalAmount) {
        //如果輸入的是“.”  判斷之前已經有"."或者字符串爲空
        if ([string isEqualToString:@"."] && ([textField.text rangeOfString:@"."].location != NSNotFound || [textField.text isEqualToString:@""])) {
            return NO;
        }
        //拼出輸入完成的str,判斷str的長度大於等於“.”的位置+4,則返回false,此次插入string失敗 ("379132.424",長度10,"."的位置6, 10>=6+4)
        NSMutableString *str = [[NSMutableString alloc] initWithString:textField.text];
        [str insertString:string atIndex:range.location];
        if (str.length >= [str rangeOfString:@"."].location+4){
            return NO;
        }
    }
    return YES;
}
發佈了33 篇原創文章 · 獲贊 8 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章