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.

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