您的位置:首页 > 产品设计 > UI/UE

iOS 使用UITextField自动格式化银行卡号

2017-07-03 11:20 405 查看
项目中需要输入银行卡,希望自动按照4为分组格式化。

//这里没有增加银行卡长度限制

在确定提交给服务器的时候,重新格式回不带空格的字符串就好了

self.textField.text = [self.textField.text
stringByReplacingOccurrencesOfString:@" "
withString:@""];

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

  

   NSString *text = [textField text];  

  

    NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789\b"];  

    string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];  

    if ([string rangeOfCharacterFromSet:[characterSet invertedSet]].location != NSNotFound) {  

        return NO;  

    }  

  

    text = [text stringByReplacingCharactersInRange:range withString:string];  

    text = [text stringByReplacingOccurrencesOfString:@" " withString:@""];  

  

    NSString *newString = @"";  

    while (text.length > 0) {  

        NSString *subString = [text substringToIndex:MIN(text.length, 4)];  

        newString = [newString stringByAppendingString:subString];  

        if (subString.length == 4) {  

            newString = [newString stringByAppendingString:@" "];  

        }  

        text = [text substringFromIndex:MIN(text.length, 4)];  

    }  

  

    newString = [newString stringByTrimmingCharactersInSet:[characterSet invertedSet]];  

  

    [textField setText:newString];  

  

    return NO;  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: