Home / Blog / effect

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

Author: Vic.Wang 2015/09/16 Tags:姓名星号文字替换

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

要达到的效果如下:

**雪

***易

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

代码如下:

        var str = '纳兰雪';

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

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

另一种方法:

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

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

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