【问题标题】:how to validate textfield that allows two digits after如何验证允许两位数字后的文本字段
【发布时间】:2011-02-08 15:05:00
【问题描述】:

我必须验证在. 之后只允许两位数字的文本字段

例如:12.34

如果用户输入的数字超过两位,则不允许输入文字。

让我知道这是否可以理解

我该怎么做,谁能帮帮我。

提前谢谢你。

【问题讨论】:

    标签: iphone


    【解决方案1】:

    你应该在下面的委托方法中编码,

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
     NSArray *sep = [string componentsSeparatedByString:@"."];
     if([sep count]==2)
     {
      NSString *sepStr=[NSString stringWithFormat:@"%@",[sep objectAtIndex:1]];
      if([sepStr length] >2)
      //do whatever you want
     }
    }
    

    您还可以检查他们是否使用了多个小数点,

    if([sep count]>2)
     //use only one decimal point
    

    【讨论】:

    • NSArray *sep = [string componentsSeparatedByString:@"."]; if([sep count]==2) { NSString *sepStr=[NSString stringWithFormat:@"%@",[sep objectAtIndex:1]]; if([sepStr 长度] >2) { NSLog(@"文本字段验证 %@",sepStr); //做任何你想做的事情}}我试试这个,但不打印任何东西
    • 遇到小数点后才会执行if语句
    • 检查你是否设置了你的委托
    • 如果我尝试这个 NSArray *sep = [string componentsSeparatedByString:@"."]; if([sep count]==2) { NSString *sepStr=[NSString stringWithFormat:@"%@",[sep objectAtIndex:1]]; NSLog(@"你好");然后它在我放置时打印。在文本字段中,但是当我将你放在代码上方时什么都不会发生
    • 当然会检查 .符号然后它将检查 . 之后是否有超过 2 位数字。符号
    【解决方案2】:

    我使用此代码解决了我的问题。

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    
        NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    
        NSArray *sep = [newString componentsSeparatedByString:@"."];
        if([sep count]>=2)
        {
            NSString *sepStr=[NSString stringWithFormat:@"%@",[sep objectAtIndex:1]];
            return !([sepStr length]>2);
        }
        return YES;
    }
    

    【讨论】:

      【解决方案3】:

      检查文本字段委托中的文本有效性:

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

      【讨论】:

        猜你喜欢
        • 2017-02-05
        • 1970-01-01
        • 2011-04-29
        • 2017-01-22
        • 2020-12-17
        • 1970-01-01
        • 1970-01-01
        • 2016-05-21
        • 1970-01-01
        相关资源
        最近更新 更多