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

本文主要是介绍银行卡号简单的格式化显示处理(支付宝、微信绑定卡列表显示卡号),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

概述

观察发现支付宝和微信中不管是多少位的银行卡号,均被格式化为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

这篇关于银行卡号简单的格式化显示处理(支付宝、微信绑定卡列表显示卡号)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100692

相关文章

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.