姓名显示最后一字,其他替换成星号
本文写于 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
文章若需转载,请附上原文链接,谢谢配合。^_^