-
-
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做出同样效果的函数
在展示数据的时候,会遇到数据和隐私相关需要进行隐藏数据字段部分内容达到脱敏效果,类似于张三->张*、张三丰->张*丰。这就要用到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。
为false时,只替换第一个符合的子串。默认为true。
示例:
将字符串中某一子串替换为另一个字符串,返回替换后的字符串。
replaceregex('23123abcd23123','23123','N',true)返回NabcdN
replaceregex('23123abcd23123','23123','N',false) 返回Nabcd23123
replaceregex('23123abcd23123','23123') 返回abcd
replaceregex('23123abcd23123','23123','N',false) 返回Nabcd23123
replaceregex('23123abcd23123','23123') 返回abcd