iOS 金额字段加千位分隔符的方法以及银行卡卡号4位一空格的方法

1.金额字段加千位分隔符方法


- (NSString *)separatedDigitStringWithStr:(NSString *)digitString


{

    if (digitString.length <= 3) {

        

        return digitString;

        

    } else {

        

        NSMutableString *processString = [NSMutableString stringWithString:digitString];

   

        NSInteger location = processString.length - 3;

        

        NSMutableArray *processArray = [NSMutableArray array];

        

        while (location >= 0) {

            

            NSString *temp = [processString substringWithRange:NSMakeRange(location, 3)];

                        

            [processArray addObject:temp];

            

            if (location < 3 && location > 0)

                

            {

                

                NSString *t = [processString substringWithRange:NSMakeRange(0, location)];

                

                [processArray addObject:t];

                

            }

            

            location -= 3;

            

        }

        

        NSMutableArray *resultsArray = [NSMutableArray array];

        

        int k = 0;

        

        for (NSString *str in processArray)

            

        {

            

            k++;

            

            NSMutableString *tmp = [NSMutableString stringWithString:str];

            

            if (str.length > 2 && k < processArray.count )

                

            {

                

                [tmp insertString:@"," atIndex:0];

                

                [resultsArray addObject:tmp];

                

            } else {

                

                [resultsArray addObject:tmp];

                

            }

            

        }


        NSMutableString *resultString = [NSMutableString string];

        

        for (NSInteger i = resultsArray.count - 1 ; i >= 0; i--)

            

        {

            

            NSString *tmp = [resultsArray objectAtIndex:i];

            

            [resultString appendString:tmp];

            

        }

                

        return resultString;

        

    }

    

}


/********************************************************************************************/

/********************************************************************************************/



2.银行卡卡号4位一空格方法


//检测是否为纯数字

- (BOOL)isPureInt:(NSString *)string{

    NSScanner* scan = [NSScanner scannerWithString:string];

    int val;

    return [scan scanInt:&val] && [scan isAtEnd];

}

//在UITextField的代理方法中

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

        NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string]; //得到输入框的内容

        //检测是否为纯数字

        if ([self isPureInt:string]) {

            //添加空格,每4位之后,4组之后不加空格,格式为xxxx xxxx xxxx xxxx xxxxxxxxxxxxxx

            if (textField.text.length % 5 == 4 && textField.text.length < 22) {

                textField.text = [NSString stringWithFormat:@"%@ ", textField.text];

            }

            //只要30位数字

            if ([toBeString length] >= 19+4+11)

            {

                toBeString = [toBeString substringToIndex:19+4+11];

                textField.text = toBeString;

                [textField resignFirstResponder];

                return NO;

            }

        }

        else if ([string isEqualToString:@""]) { // 删除字符

            if ((textField.text.length - 2) % 5 == 4 && textField.text.length < 22) {

                textField.text = [textField.text substringToIndex:textField.text.length - 1];

            }

            return YES;

        }

        else{

            return NO;

        }

        return YES;

}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值