微信小程序> 银行卡号简单的格式化显示处理(支付宝、微信绑定卡列表显示卡号)

银行卡号简单的格式化显示处理(支付宝、微信绑定卡列表显示卡号)

浏览量:4632 时间: 来源:m128602

银行卡号简单的格式化显示处理(支付宝、微信绑定卡列表显示卡号)

概述

观察发现支付宝和微信中不管是多少位的银行卡号,均被格式化为16位;类似于**** **** **** 1111这种格式,就是前面12位*加上卡号四位尾号,然后再每四位用空格隔开。我这里会有两种格式化方法:

第一种是跟支付宝微信一样的处理方式。

第二种是对卡号中间做符号(用*或者任意自己想用的符号)处理,类似于622848********12345,可以具体的定义替换符号以及替换几个数字。

如果对代码有任何问题或者有异议,或者有好的建议,请在下面评论,或者联系笔者(Q:1286090267);在下感激不尽。

源码下载

API

1. 类似于支付宝和微信绑定银行卡列表中卡号显示格式化方法

/** 类似于支付宝和微信绑定银行卡列表中卡号显示格式化方法 format str  eg.   transform "6012890986899099333"  to "**** **** **** 9333" @param bcstr 银行卡号 @return mask之后的卡号 */+ (NSString *) maskBankCardStr:(NSString *) bcstr {    NSString *tmpStr = [bcstr stringByReplacingOccurrencesOfString:@" " withString:@""];    NSString *returnStr = @"";    if([tmpStr length]>=10){        NSRange sufRange = NSMakeRange([tmpStr length]-4, 4);        NSString *sufString = [tmpStr substringWithRange:sufRange];        NSString *tmpStr = @"";        for (int i = 0; i < 12; i++) {            tmpStr = [tmpStr stringByAppendingString:@"*"];        }        returnStr = [tmpStr stringByAppendingString:sufString];        NSInteger rStrLength = returnStr.length;        NSString *formatStr = @"";        NSString *subStr = @"";        for (NSUInteger i = 0; i < rStrLength; i+=4){            if(i<rStrLength-5){                NSRange range = NSMakeRange(i, 4);                subStr = [returnStr substringWithRange:range];                formatStr = [formatStr stringByAppendingString:subStr];                formatStr = [formatStr stringByAppendingString:@" "];            }else{                NSRange range = NSMakeRange(i, rStrLength - i);                subStr = [returnStr substringWithRange:range];                formatStr = [formatStr stringByAppendingString:subStr];                returnStr = formatStr;                break;            }        }    }else{        returnStr = tmpStr;    }    return returnStr;}

2. 对银行卡号做*处理

/** *  format str  eg.   transform "6012890986899099333"  to "601289******9333" * *  @param bcstr   银行卡号 *  @param maskStr 格式字符(* 或者 # 等等),默认为 * *  @param counts  替换的字符个数 * *  @return 替换后的字符串 */+ (NSString *) maskBankCardStr:(NSString *)bcstr withString:(NSString *)maskStr andReplaceCounts:(NSInteger)counts{    if (maskStr == nil) {        maskStr = @"*";    }    if (counts > 12) {        counts = 12;    }    NSString *returnStr = @"";    NSString *maskStrings = @"";    if([bcstr length]>=4 && counts <=12){        for (int i = 0; i < counts; i++) {            maskStrings = [maskStrings stringByAppendingString:maskStr];        }        NSRange perRange = NSMakeRange(0, 12-counts);//前几位        NSRange sufRange = NSMakeRange([bcstr length]-4, 4);//后4位        NSString *perString = [bcstr substringWithRange:perRange];        NSString *sufString = [bcstr substringWithRange:sufRange];        returnStr = [[perString stringByAppendingString:maskStrings] stringByAppendingString:sufString];//拼接后显示出来    }else if (counts >12 && counts <= bcstr.length) {        for (int i = 0; i < counts; i++) {            maskStrings = [maskStrings stringByAppendingString:maskStr];        }        NSRange perRange = NSMakeRange(0, maskStrings.length);        returnStr = [bcstr stringByReplacingOccurrencesOfString:[bcstr substringWithRange:perRange] withString:maskStrings];    }else{        returnStr = bcstr;    }    return returnStr;}

Usage

下载源码 然后将文件MMBankCardNoMask.{h,m}拷贝到项目中,导入#import "MMBankCardNoMask.h"

调用方法如下:

小程序

打印结果如下:

小程序

关于

  1. 个人github
  2. CDSN博客首页
  3. Q:1286090267

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎