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];
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容