找回密码
 立即注册

QQ登录

只需一步,快速开始

一眼望天涯
高级会员   /  发表于:2022-3-29 19:32  /   查看:2625  /  回复:5
20金币
本帖最后由 Chelsey.Wang 于 2022-3-30 13:51 编辑

现在有这样的一些字符串,都是姓名、邮箱什么的,比如张三、abc@abc.com,陈茜茜,chenchen@qq.com
怎么显示为:张*,ab***@***c.com,陈*茜,ch***@***q.com这种形式?
规则都是统一的,如果姓名是2个字,就只显示姓;如果是3个字及以上,就显示姓+最后一个字;
邮箱只显示前缀的前两个字符,后缀的后4个字符,中间部分用@和3个*代替。

如果我没说清楚,可以参考支付宝账户、银行行户的显示模式,就是让你知道这是什么信息,但是又不完全显示。

不需要写详细的规则,请指点下该怎么写就行,感谢!

最佳答案

查看完整内容

自定义函数,想怎么写怎么写。 这个简单函数用法 HideStr(要处理的字符串对象,前面留几个文字,后面留几个文字) 函数的写法在demo内,可供参考,至于邮箱号码也好处理,使用split函数把传进来的邮箱字符串以@拆分为两节,然后想怎么隐藏和上面函数是一样的,再拼合就行。 不清楚你实际场景,就不做了,思路供参考。

5 个回复

倒序浏览
最佳答案
最佳答案
flygoodkiller悬赏达人认证 活字格认证
高级会员   /  发表于:2022-3-29 19:32:42
来自 2#

自定义函数,想怎么写怎么写。
这个简单函数用法
HideStr(要处理的字符串对象,前面留几个文字,后面留几个文字)
函数的写法在demo内,可供参考,至于邮箱号码也好处理,使用split函数把传进来的邮箱字符串以@拆分为两节,然后想怎么隐藏和上面函数是一样的,再拼合就行。
不清楚你实际场景,就不做了,思路供参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 2金币 +666 满意度 +5 收起 理由
一眼望天涯 + 5
Chelsey.Wang + 666 很给力!

查看全部评分

回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-3-30 09:38:08
3#
flygoodkiller 发表于 2022-3-29 21:02
自定义函数,想怎么写怎么写。
这个简单函数用法
HideStr(要处理的字符串对象,前面留几个文字,后面留 ...

必须给大佬一个大大的赞
我觉得这个帖子值得一个精华,大佬可以补充一下这个自定义函数中参数的含义,也许还可以帮到以后遇到类似问题的格友们哟~
回复 使用道具 举报
flygoodkiller悬赏达人认证 活字格认证
高级会员   /  发表于:2022-3-30 11:44:28
4#
本帖最后由 Chelsey.Wang 于 2022-3-30 12:09 编辑

不知道怎么回事,函数代码只能显示一半,没办法分成两节了。
其实活字格自定义函数很简单给新人解释一下自定义函数的方法,方便大家后面扩展使用。
  1. function HideStrFunction() {
  2.   this.name = "HideStr";//函数名
  3.   this.maxArgs = 3;//函数最大接收的参数数量
  4.   this.minArgs = 3;//函数最少接收的参数梳理,如果小于最大接收参数的梳理,就可以使用后面缺少参数的默认值
  5. }
  6. HideStrFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
  7. HideStrFunction.prototype.evaluate = function (args) {  
  8. let srcstr= arguments[0] == null ? "" : arguments[0]; // 需要遮掩的字符串,无输入时默认留空
  9. let frontLen = arguments[1] == null ? 0: arguments[1]; // 遮掩后的字符串前面需留下明文字符串的长度,默认为0
  10. let endLen= arguments[2] == null ? 0 : arguments[2]; // 遮掩后的字符串后面需留下明文字符串的长度,默认为0
  11. var len = srcstr.length-frontLen-endLen;//根据输入算出字符串中有几个字符需要遮挡为星号
  12. var xing = '';
  13. for (var i=0;i<len;i++) {
  14. xing+='*';
  15. }
复制代码


回复 使用道具 举报
flygoodkiller悬赏达人认证 活字格认证
高级会员   /  发表于:2022-3-30 11:50:04
5#
flygoodkiller 发表于 2022-3-30 11:44
其实活字格自定义函数很简单给新人解释一下自定义函数的方法,方便大家后面扩展使用。
  1. return srcstr.substring(0,frontLen)+xing+srcstr.substring(srcstr.length-endLen);//返回拼合字符串
  2. }
  3. GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction("HideStr", new HideStrFunction());//将函数名和函数注册到活字格
复制代码
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-3-30 13:52:18
6#
flygoodkiller 发表于 2022-3-30 11:44
不知道怎么回事,函数代码只能显示一半,没办法分成两节了。
其实活字格自定义函数很简单给新人解释一下自 ...

感谢大佬的分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部