iOS开发-限制文本框输入两位小数和最大值
2018-01-22 09:43
477 查看
要求:
1.第一个首字母不能是小数点
2.最大限制是10000
3.保留小数点后两位
<UITextFieldDelegate>
_testText.delegate
= self;
- (BOOL)textField:(UITextField
*)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString
*)string {
NSString
*amountText = _testText.text;
NSString
*regStr = @"^([1-9][\\d]{0,100}|0)(\\.[\\d]{0,1})?$";
NSPredicate
*predicate = [NSPredicate
predicateWithFormat:@"SELF
MATCHES %@", regStr];
BOOL
match = [predicate evaluateWithObject:amountText];
if
([string isEqualToString:@""])
return
YES;
//始终允许用户删除
unichar
single = [string characterAtIndex:0];//当前输入的字符
if([textField.text
length]
== 0){
if(single
== '.')
{
[SVProgressHUD
showErrorWithStatus:@"第一个数字不能为小数点"];
[textField.text
stringByReplacingCharactersInRange:range
withString:@""];
return
NO;
}
}
NSString
*tmpStr = [amountText stringByAppendingString:string];
NSString
*numStr = [[tmpStr componentsSeparatedByString:@"."]
firstObject];
NSInteger
amount = [numStr integerValue];
if
(([amountText integerValue]
== 10000)
&& (![string isEqualToString:@""]))
return
NO;
BOOL
result = [amountText isEqualToString:@""]
? YES
: (match && ((amount <= 10000)
|| [string isEqualToString:@"."]));
return
result;
}
1.第一个首字母不能是小数点
2.最大限制是10000
3.保留小数点后两位
<UITextFieldDelegate>
_testText.delegate
= self;
- (BOOL)textField:(UITextField
*)textField shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString
*)string {
NSString
*amountText = _testText.text;
NSString
*regStr = @"^([1-9][\\d]{0,100}|0)(\\.[\\d]{0,1})?$";
NSPredicate
*predicate = [NSPredicate
predicateWithFormat:@"SELF
MATCHES %@", regStr];
BOOL
match = [predicate evaluateWithObject:amountText];
if
([string isEqualToString:@""])
return
YES;
//始终允许用户删除
unichar
single = [string characterAtIndex:0];//当前输入的字符
if([textField.text
length]
== 0){
if(single
== '.')
{
[SVProgressHUD
showErrorWithStatus:@"第一个数字不能为小数点"];
[textField.text
stringByReplacingCharactersInRange:range
withString:@""];
return
NO;
}
}
NSString
*tmpStr = [amountText stringByAppendingString:string];
NSString
*numStr = [[tmpStr componentsSeparatedByString:@"."]
firstObject];
NSInteger
amount = [numStr integerValue];
if
(([amountText integerValue]
== 10000)
&& (![string isEqualToString:@""]))
return
NO;
BOOL
result = [amountText isEqualToString:@""]
? YES
: (match && ((amount <= 10000)
|| [string isEqualToString:@"."]));
return
result;
}
相关文章推荐
- iOS限制文本框输入两位小数和最大值
- JS限制文本框输入金额并保留两位小数
- ios 文本框只能输入数字保留两位小数和只能输入数字
- ios开发之UITextField、UITextView限制最大输入数
- IOS开发问题解决之限制UITextField输入特定位数小数时,Done按钮失效
- iOS UITextField 数字输入限制 只能输入数字和小数点,只能有两位小数
- iOS限制textfield输入两位小数逻辑思维步骤记录(Swift)
- ios TextField限制输入两位小数
- iOS开发之UITextField(输入框)限制只能输入整数和小数
- 文本框限制输入数值保留两位小数的js 方法
- JQuery 正则 限制文本框(input)只能输入数字/限制输入金额为两位小数
- JS限制文本框输入金额并保留两位小数
- IOS开发问题解决之限制UITextField输入特定位数小数时,Done按钮失效
- JS限制文本框输入金额并保留两位小数
- Android EditText限制输入两位小数
- JS控制文本框只能输入正整数和两位小数点以内的小数
- JS,文本框只能输入整数或两位小数的整数
- iOS---限制文本框输入的长度
- [iOS]UITextFiled限制输入整数与小数位数
- JS之 输入框限制输入数字且最大精确到小数点后两位