iOS小数点键盘的正则解决方法

 


#pragma mark- UITextFieldDelegate

//在这个代理方法
//限定9位、小数点后两位、开头只能输入一个0、只能有一位小数点

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

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

    if (toString.length > 0) {

        //NSString *stringRegex = @"(\\+|\\-)?(([0]|(0[.]\\d{0,2}))|([1-9]\\d{0,4}(([.]\\d{0,2})?)))?";//(带正负号的)

        NSString *stringRegex = @"(([0]|(0[.]\\d{0,2}))|([1-9]\\d{0,8}(([.]\\d{0,2})?)))?";//一般格式 d{0,8} 控制位数

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

        BOOL flag = [money evaluateWithObject:toString];

        if (!flag) return NO;


    }

    return YES;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容