gpt4 book ai didi

ios - 验证用户输入的数字

转载 作者:行者123 更新时间:2023-11-28 19:04:24 25 4
gpt4 key购买 nike

在我的应用程序中,我只想允许用户以“1111.11”格式输入十进制数。这意味着最多 4 位整数和最多 2 位十进制数我想在用户在文本框中编辑时检查这一点。如果用户输入错误的输入,则不应允许输入文本框。我已将代码写入:

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

方法,但虽然我没有得到想要的结果。这是我的代码

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == txtFund)
{
double num;
long iPart;
double fPart;
num = [textField.text doubleValue];
iPart = (long) num;
fPart = num - iPart;
NSLog(@"1 %ld %f",iPart,fPart);
NSString *integerPart=[NSString stringWithFormat:@"%ld",iPart];

if([integerPart length]>=4){
if([string isEqualToString:@"."]){

}
else{
return NO;
}
}
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];

NSString *expression = @"^([0-9]+)?(\\.([0-9]{1,2})?)?$";

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression
options:NSRegularExpressionCaseInsensitive
error:nil];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:newString
options:0
range:NSMakeRange(0, [newString length])];
if (numberOfMatches == 0)
return NO;
}

return YES;
}

通过这段代码,我能够实现类似于“4444”的输出。但它不允许因为它在第二个 if 中转到 else 部分

最佳答案

这段代码应该做你想要的。

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

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

NSString *expression = @"^([0-9]{1,4})?(\\.([0-9]{1,2})?)?$";

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression
options:NSRegularExpressionCaseInsensitive
error:nil];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:newString
options:0
range:NSMakeRange(0, [newString length])];
if (numberOfMatches == 0)
return NO;

return YES;
}

关于ios - 验证用户输入的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com