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

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

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

概述

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

相关文章

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

使用Python处理CSV和Excel文件的操作方法

《使用Python处理CSV和Excel文件的操作方法》在数据分析、自动化和日常开发中,CSV和Excel文件是非常常见的数据存储格式,ython提供了强大的工具来读取、编辑和保存这两种文件,满足从基... 目录1. CSV 文件概述和处理方法1.1 CSV 文件格式的基本介绍1.2 使用 python 内

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery