限制输入小数点后两位数字

// 限制输入数字或小数点后两位
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (range.location==0 && [string isEqualToString:@"."])
    {
        return NO;
    }
    if ([string isEqualToString:@""]) {
        return YES;
    }
    NSString *checkStr = [textField.text stringByReplacingCharactersInRange:range withString:string];
    //正则表达式 数字或小数点后两位
    NSString *regex =
    @"^\\-?([1-9]\\d*|0)(\\.\\d{0,2})?$";
    //    @"^\\-?([1-9]\\d*|0)(\\.\\d{0,2})?$";
    //    @"(/\d+(\.\d{0,2})?/)||[''])[0]";
    //    @"^(\d+(?:\.\d{2})?|-1)$";
    //    @"^[0-9]+(.[0-9]{2})?$";
    //    @"^\d+(\.\d{2})?$";
    return [self isValid:checkStr withRegex:regex];
    
}

//检测改变过的文本是否匹配正则表达式,如果匹配表示可以键入,否则不能键入
- (BOOL) isValid:(NSString*)checkStr withRegex:(NSString*)regex
{
    NSPredicate *predicte = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
    return [predicte evaluateWithObject:checkStr];
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值