前言:
今天同学们对“js中转字符串方法”可能比较注意,各位老铁们都需要学习一些“js中转字符串方法”的相关文章。那么小编同时在网摘上收集了一些关于“js中转字符串方法””的相关资讯,希望大家能喜欢,姐妹们快快来学习一下吧!本期案例是对数据中的数字进行脱敏处理,前后转换效果如下:
解题套路
1.Text.SplitAny
解题思路:根据数字进行拆分,然后使用分隔符“*”进行合并。
Table.AddColumn(源,"脱敏数据",each Text.Combine(Text.SplitAny([数据],Text.Combine({"0".."9"})),"*"))
2.Text.ToList
解题思路:转成列表,逐个进行判断,对于是数字型的进行替换,其余字符保持不变。
Table.AddColumn(源,"脱敏数据",each Text.Combine(List.Transform(Text.ToList([数据]),(x)=>if List.Contains({"0".."9"},x) then "*" else x)))
3.List.Accumulate
解题思路1:遍历0到9的数字,对字符串进行替换操作。
Table.AddColumn(源,"脱敏数据",each List.Accumulate({"0".."9"},[数据],(x,y)=>Text.Replace(x,y,"*")))
解题思路2:对数字与其他字符进行分组处理,当出现其他字符的时候,对临时中转的数字根据长度替换为分隔符,其余直接进行连接。
Table.AddColumn(源,"脱敏数据",each List.Accumulate(Text.ToList([数据]),{"",""},(x,y)=>if List.Contains({"0".."9"},y) then {x{0},x{1}&y} else {x{0}&Text.Repeat("*",Text.Length(x{1}))&y,""}){0})
解题思路3:判断0到9的数字在字符串中的位置,然后根据位置进行替换。
Table.AddColumn(源,"脱敏数据",each List.Accumulate(List.Combine(List.Transform({"0".."9"},(x)=>Text.PositionOf([数据],x,2))),[数据],(s,c)=>Text.ReplaceRange(s,c,1,"*")))
4.List.ReplaceMatchingItems
解题思路1:函数是按组进行替换的,这里可以根据0-9的数字进行遍历构造,然后进行替换。
Table.AddColumn(源,"脱敏数据",each Text.Combine(List.ReplaceMatchingItems(Text.ToList([数据]),List.Transform({"0".."9"},each {_,"*"}))))
解题思路2:是对前述的简写,这里使用了函数的第三参数,构造了一个比较器,只要满足是数字的就进行替换。
Table.AddColumn(源,"脱敏数据",each Text.Combine(List.ReplaceMatchingItems(Text.ToList([数据]),{{"0","*"}},each _>"A")))
5.Table.Group
解题思路:对字符按数字与其他字符进行分组,对于数字的,对于深化的Value列删除首项,并连接分隔符,其他的直接深化即可。
Table.AddColumn(源,"脱敏数据",each Text.Combine(List.Combine(Table.Group(Table.FromValue(Text.ToList([数据])),"Value",{"a",each if List.Contains({"0".."9"},[Value]{0}) then {"*"}&List.Skip([Value]) else [Value]},0,(x,y)=>Number.From(y<"A"))[a])))
其他组合方式不在赘述。
以上是本期内容。
标签: #js中转字符串方法