ios 用正則表達式 如何檢測出只輸入金額 0. 這樣的不正確金額格式

/*在代理方法中調用 如下類似調用方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    NSString *toString = [textField.text stringByReplacingCharactersInRange:range withString:string];

    return [[Tool sharedInstance] priceFormat:toString];

}

*/

 

 

下面是網上搜集的一個很好的檢測金額格式的寫法,不過無意中發現它無法檢測出 0. 這一金額格式

- (BOOL)priceFormat:(NSString *)price{

    if (price.length > 0) {

        //支持+ - 符號 支持的金額格式

        NSString *stringRegex = @"(\\+|\\-)?(([0]|(0[.]\\d{0,2}))|([1-9]\\d{0,6}(([.]\\d{0,2})?)))?";

        

        NSPredicate *pricePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", stringRegex];

        if ([pricePredicate evaluateWithObject:price] == NO) {// 不滿足該正則,就不讓用戶輸入,執行return NO。

            return NO;

        }

    }

    // 滿足該正則,讓用戶輸入,執行return YES

    return YES;

}

 

 

請教,怎樣寫正則才能檢測出這個金額格式  0.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章