输入框输入金额的限制

作者: 标准答案 | 来源:发表于2016-09-18 15:46 被阅读343次

建议将这个方法封装成为一个公共的方法, 用的时候在uiTextField的代理方法里面直接调用

直接上代码

NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:NumbersWithDot]invertedSet];

NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

if (filtered.length == 0) {

//支持删除键

return [string isEqualToString:@""];

}

if (textField.text.length == 0) {

return ![string isEqualToString:@"."];

}

//第一位为0,只能输入.

else if (textField.text.length == 1){

if ([textField.text isEqualToString:@"0"]) {

return [string isEqualToString:@"."];

}

}

else{//只能输入一个.

if ([textField.text rangeOfString:@"."].length) {

if ([string isEqualToString:@"."]) {

return NO;

}

//两位小数

NSArray *ary =  [textField.text componentsSeparatedByString:@"."];

if (ary.count == 2) {

if ([ary[1] length] == 2) {

return NO;

}

}

}

}

return YES;

还有一点, 刚输入的最后一个字符是'.'的时候, 最好在输入完成的那个代理方法里面, 加上这个方法

if (textField.text.length > 0) {

NSMutableString *string = [NSMutableString stringWithString:textField.text];

if ([string characterAtIndex:0] == '.' || [string characterAtIndex:textField.text.length - 1] == '.') {

[MBProgressHUD showError:@"请输入正确的金额"];

textField.text = @"";

}

}

亲自尝试, 可以将uitextField子类化, 用的话直接用就可以了

相关文章

网友评论

    本文标题: 输入框输入金额的限制

    本文链接:https://www.haomeiwen.com/subject/rrkzhttx.html