← 返回博客列表

姓名显示最后一字,其他替换成星号

Vic.Wang2015/09/167617 阅读0 喜欢最近更新 2026/07/06 16:04:57

本文写于 2015 年,距今已有 11 年,文中提及的技术方案与接口可能已经过时,请注意甄别参考。

今天遇到一个效果,姓名只显示最后一个字,其他文字都换成星号。

要达到的效果如下:

**忱

自己想了下,用正则感觉会很麻烦,可以用截取字符串再替换的方式来弄,随手问了下东哥,get到技能了。

代码如下:

var str = '纳兰忱';

return new Array(str.length).join('*') + str.substr(-1);

这种方法的原理是取最后一个字符,其他的根据字符串长度生成对应的*个数。通过 new Array(str.length).join('*') 获得元素的间隔,然后拼接这些间隔,拼出来的刚好是少一个字符,再加上截取的最后一个字符。

另一种方法:

晚上,东神又写了个正则发给我,这家伙这么吊,蘑菇街还不要,面试的真是瞎眼了啊!!!

'wuhaidong很牛逼的'.replace(/.(?=.)/g, '*');

这里主要用的是正则的 (?=pattern),这东西还真没用过,平时看手册都不会去注意,原来这么有用的。可以理解为不占匹配位,不占匹配位就不会替换。感觉自己发现新大陆了,自己的代码格式那个 code.js 之前有些问题没法处理,似乎可以解决了。

若有共鸣,不妨点个喜欢

本文地址:https://www.mingsixue.com/blog/detail/JS-name-to-asterisk

分享:微博QQ空间X