replace函数应用给数据替换字符做脱敏处理

3428
0

xxxl 数据领袖Lv6

发表于2020-8-17 16:17

楼主
1.需求场景
  在展示数据的时候,会遇到数据和隐私相关需要进行隐藏数据字段部分内容达到脱敏效果,类似于张三->张*、张三丰->张*丰。这就要用到replace函数了,replace函数可以替换字符,我们只需要将中间的字符替换成*即可达到脱敏效果(replaceregex函数也能做同样的效果)。


2.详细操作
  直接在需要做脱敏处理的浮动表元中设置显式表达式
if(len(self.txt)<=3,replace(self.txt,'*',1,1),replace(self.txt,'*',1,2))
len是用来求长度的函数,返回长度。replace(self.txt,'*',1,1)意思是将字符串从第2个字符开始,共替换1个字符为 *因为字符串初始序号从0开始,所以第二个字符序号就是1)。
这个表达式的意思是,
如果这个浮动表格值的长度小于等于3的时候,将字符串从第2个字符开始,共替换1个字符为 *
如果长度大于3的时候,将字符串从第2个字符开始,共替换2个字符为 * 。



不做脱敏处理的结果表效果是:

写了显示表达式做了脱敏效果的结果表效果是:


3.补充
  其实这个函数不止可以用来做脱敏处理,它还可以做出其他替换字符的需求,比如将数据中特定的字符在结果显示的时候替换成需要的字符等。
下面是这个函数的定义
定义:REPLACE(C1,C2,I1,I2)
将串C1从I1开始的I2个字符替换成新串C2。
参数:
C1、C2: 指定的字符串,其中C2为要替换的子串
N1: 指字符串的起始位置,串的起始位置从0算起,为整数
N2: 指串C1中要替换掉的字符的个数,为整数
示例:
将串C1从I1开始的I2个字符替换成新串C2


还有一个能和replace做出同样效果的函数
定义:REPLACEREGEX(C1,C2,C3,L)
替换某字符串中的串
参数:
C1:第一个参数:需要被替换的字符串
C1:第一个参数:第二个参数:需要被替换的第一个参数中的子串
C1:第一个参数:第三个参数:用这个参数来替换第二个参数表示的子串。如果没有这个参数,默认用空串""来替换。
L:第四个参数:为true时,替换所有符合的子串;
为false时,只替换第一个符合的子串。默认为true。

示例:
将字符串中某一子串替换为另一个字符串,返回替换后的字符串。
replaceregex('23123abcd23123','23123','N',true)返回NabcdN
replaceregex('23123abcd23123','23123','N',false) 返回Nabcd23123
replaceregex('23123abcd23123','23123') 返回abcd



最近看过此主题的会员

zly_2960

槐序

灰龙

zhzh

xin8277

wanghong

chenzy

esen_4PK37FE9K1

swx771067

zhaolj

xyr

zhouxm

zhaojinjin

0个回答

只看楼主

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号