iOS 输入金额的正则表达式:小数点前4位,小数点后2位,只要键盘上有正负数,也可以输入正负数的哦。

封装成类方法,放在工具类ZBFunction中

+ (BOOL)priceFormat:(NSString *)price{
    
    if (price.length > 0) {
        NSString *stringRegex = @"(\\+|\\-)?(([0]|(0[.]\\d{0,3}))|([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;
}

用法

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

    NSString *toString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    return [ZBFunction priceFormat:toString];
}

你可能感兴趣的:(iOS 输入金额的正则表达式:小数点前4位,小数点后2位,只要键盘上有正负数,也可以输入正负数的哦。)