隐藏字符串中间字符,一个公共方法解决产品的所有设想

news2024/9/22 16:53:36

说到隐藏字符串中间字符,就是 13833321212 给用户显示成 “138***1212” 这样子呗,你是不是也是这样认为的。我刚开始拿到需求,就是这样认为的。但是越到后来发现越不对劲儿。来看看我的隐藏历程吧。

一 产品来了

1 加星第一步

产品刚开始跟我说,手机号中间要加星显示。我问,加几颗星?产品说:加3颗星就行啦。我又问,前面几个字符?后面几个字符?产品说,前面3个字符,后面3个字符就行。

我就想着,字符串截取前面3个字符,截取后面3个字符,中间补充上3个星号。嗯,搞定!!!我还写了个公共方法,想着后面可以给身份证号隐藏,给交易id隐藏都可以用。

2 加星第二步

后来,产品跟我说,前面3个字符,后面截4个字符吧。中间还是3颗星。我说好的,我还重复了下产品的想法,就是前面 138 然后三颗星 ,然后是 1212 呗。

3 加星第三步

后来产品又说了,身份证号呢,我希望前面显示4位,后面显示4位,中间3颗星就好。我说好的,那就是2101 3颗星星,后面剩余4个字符呗,123X,这样,对吧。产品说,对。

4 加星第四步

后来产品又过来了,他说,你这个身份证号啊,中间3颗星星太少,中间得是6颗星星,这样显得好看。我说好的,截取前面4个字符,截取后面4个字符,中间加6颗星星,对吧。他说是

5 加星第五步

后来产品拿着饭盒过来了,说,咱们那个交易id太长了,我想截取前8位,后8位,中间显示3个小点儿就可以了。我说,是0x121212,然后中间... ,然后最后是8位字符,是不。产品说,是,就这样。

6 加星第六步

后来产品又说了,在某个场合啊,交易id中间加点儿不好看,我说那还加星吧。产品说,加星也不好看。我想想啊。我说,你想吧。他说,咱们加表情符吧。加3个。我说好的,你把表情符号过会儿给我,看加哪个。他说好的。你等着。

7 加星第7步

后来产品又说了,中间这个表情符,你就加这个就行。😶。然后呢,列表页相对区域较小,你加3个,详情页呢,区域较长,你给我加6个。我说好的。

二 实现来了

第一步

项目中安装js-tool-big-box

npm install js-tool-big-box

第二步 项目中引入stringBox对象
import { stringBox } from 'js-tool-big-box';
第三步 使用公共方法,maskString
    const phone = '13812121212';
    const maskPhone = stringBox.maskString(phone, 3, 4, '*', 3);
    console.log('隐藏后的手机号为:', maskPhone);
    const cardId = '53010219200508011X';
    const maskCard = stringBox.maskString(cardId, 4, 4, '*', 6);
    console.log('隐藏后的身份证号为:', maskCard);
    const transId = '0x3e3d1451091c823a2cb018c59d0c6073f5471ed4';
    const maskTransId = stringBox.maskString(transId, 8, 8, '😶', 6);
    console.log('隐藏后的交易id为:', maskTransId);
效果如图 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1813978.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ThinkBook 16 2024 Ubuntu 触控板问题解决

sudo insmod goodix-gt7868q.ko sudo cp local-overrides.quirks /etc/libinput/local-overrides.quirks sudo systemctl restart gdm 有偿解决,无效退款

R语言使用survivalsvm包进行支持向量机生存分析

1995年VAPINK 等人在统计学习理论的基础上提出了一种模式识别的新方法—支持向量机 。它根据有限的样本信息在模型的复杂性和学习能力之间寻求一种最佳折衷。 以期获得最好的泛化能力.支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部极小值,从而也保证了它对未知…

LeetCode题练习与总结:二叉树中的最大路径和--124

一、题目描述 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 ro…

swift微调牧歌数据电商多模态大语言模型

大规模中文多模态评测基准MUGE_数据集-阿里云天池多模态理解和生成评估挑战榜(MUGE)是由阿里巴巴达摩院智能计算实验室发起,由阿里云天池平台承办,并由浙江大学、清华大学等单位共同协办。 Mhttps://tianchi.aliyun.com/dataset/107332微调的是牧歌数据集,结果都不好,记录…

C语言学习系列:笔记列表

1,精神建设:为什么要学C语言以及如何学习C语言 2,C语言学习系列:GCC编译器Windows版本MinGW-w64的安装教程 3,C语言学习系列:初识C语言 4,C语言入门学习系列:基本语法

工业和信息化部电子工业标准化研究院人工智能从业人员“计算机视觉设计开发工程师”专项培训(第四期)

注:若出现无法显示完全的情况,可搜索“人工智能技术与咨询”查看完整文章 声明: 公众号转载的文章及图片出于非商业性的教育和科研目的供大家参考和探讨,并不意味着支持其观点或证实其内容的真实性。版权归原作者所有,如转载稿涉及…

面试-NLP八股文

机器学习 交叉熵损失: L − ( y l o g ( y ^ ) ( 1 − y ) l o g ( 1 − ( y ^ ) ) L-(ylog(\hat{y}) (1-y)log(1-(\hat{y})) L−(ylog(y^​)(1−y)log(1−(y^​))均方误差: L 1 n ∑ i 1 n ( y i − y ^ i ) 2 L \frac{1}{n}\sum\limits_{i1}^{n}…

软件3班20240612

加粗样式 maven 根据的使用案例 package com.yanyu;public class Demo02 {// 设置 一个 求 两个数 的 和 的 方法 sumpublic void sum(int num1, int mum2) {System.out.println("两个数 的 和 是 :" (num1 mum2));} }import com…

盲盒小程序推广与运营策略的挑战

随着盲盒经济的兴起,越来越多的商家开始关注并尝试开发盲盒小程序。然而,在推广和运营盲盒小程序的过程中,我们也不可避免地会遇到一些挑战。下面,我将就用户获取、留存以及活跃度提升等方面,探讨这些挑战及可能的应对…

常用环境部署(十四)——Docker部署MinIO

一、安装Docker及Docker-compose https://blog.csdn.net/wd520521/article/details/112609796 二、Docker-compose部署MinIO 1、在服务器创建/data/minio目录 mkdir -p /data/minio 2、 docker-compose.yml脚本创建 vim /data/minio/docker-compose.yml (1&a…

使用易备数据备份软件,简单快速地备份 Oracle 数据库

易备数据备份软件能够以简单高效的方式,实现对 Oracle 数据库的保护。 易备数据备份软件数据库备份功能的关键特性 自动保护网站数据库及应用程序实时备份,不需要任何中断或数据库锁定基于日期和时间的备份任务计划可恢复到一个已存在的数据库或创建一…

【java计算机毕设】图书商城管理系统MySQL springboot vue html maven送文档

1项目功能介绍 【java计算机毕设】图书商城管理系统 Java Spring Boot vue HTML MySQL 赠送文档 PPT 2项目简介 系统功能: 图书商城管理系统包括管理员和用户两种角色。 管理员的功能包括在个人中心修改个人信息,以及在基础数据管理中管理会员等级类型和…

STM89C51开发学习1

环境安装: 使用Keil uVision4环境进行对51单片机的学习。 在进行使用之前先用keygen进行对软件的破解防止后续发生不必要的问题。 开发环境下载完毕后,检查电脑是否有串口驱动(可以在网上下载) CH340驱动。 安装stcai-…

小程序视图渲染数据和部分事件的绑定

今天依旧使用这个目录进行教学 数据的渲染 在 index.js的 page中定义一个data对象结构是这样的 Page({data:{name:张三} }) 在index.wxml 中 利用模板语法进行渲染 <view >{{name}}</view> 注意这个模板里边不能使用js的方法 要循环渲染数组&#xff0c;如 在…

目标检测中的anchor机制

目录 一、目标检测中的anchor机制 1.什么是anchor boxes&#xff1f; 二、什么是Anchor&#xff1f; ​编辑三、为什么需要anchor boxes&#xff1f; 四、anchor boxes是怎么生成的&#xff1f; 五、高宽比&#xff08;aspect ratio&#xff09;的确定 六、尺度(scale)的…

数字影像产业园:打造数字经济高地,赋能未来产业

成都国际数字影像产业园凭借其得天独厚的区位优势、完善的配套设施、先进的产业定位和便捷的交通条件&#xff0c;逐步成为成都市乃至全国数字影像、文创、媒体产业的重要聚集地。 成都国际数字影像产业园位于成都市金牛区的核心地带&#xff0c;其主导产业为数字影像、文创、媒…

LCD电子广告牌课程设计

概述 1.1课程设计简介 亮丽实用的广告牌可以给我们的生活添加光彩、可以给店铺招揽生意。传统的广告牌都是固定的汉字&#xff0c;并且时间长了会掉色&#xff0c;使汉字模糊难认&#xff0c;这就给我的生活带来很多的不便。尤其到了晚上传统广告牌就会失去其该有的作用。所以在…

四季变换,制氮机使用注意事项

随着四季的轮回变换&#xff0c;大自然展现着不同的风貌。对于制氮机而言&#xff0c;季节的变换同样会带来不同的使用挑战和注意事项。本文将为您揭示四季变换对制氮机使用的影响&#xff0c;帮助您更好地掌握制氮机的季节使用须知。 春季 温湿度变化&#xff1a;春季温湿度逐…

VitePress做一个自己的知识博客

创建项目 // 1.创建项目,直接在空项目下安装vitepress(npm/yarn等都可以,这个可以看官网,官网给了好几种安装方式) yarn add -D vitepress // 2.初始化配置项目(npm/官网也给了多种包管理工具的安装方式) yarn vitepress init // 初始化命令执行完会遇到以下几个问题 ┌ Welc…

C语言之数组

目录 一、数组的概念 二、一维数组的使用 数组的创建 数组的初始化 数组的使用 三、一维数组在内存中的存储 四、sizeof计算数组元素个数 五、二维数组的使用 数组的创建 数组的初始化 数组的使用 六、二维数组在内存中的存储 七、C99中的变长数组 八、总结 一、…