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

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

2016-01-20 08:56 441 查看
-(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]];  

  

    if (newString.length >= 20) {  

        return NO;  

    }  

  

    [textField setText:newString];  

  

    return NO;
 

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