function maskify(cc) {
var dd = cc.toString();
var hash = dd.replace((/./g), '#');
for (var i = (hash.length - 4); i < hash.length; i++) {
hash[i] = dd[i];
}
return hash;
}
我正在尝试用#
替换所有字符,除了最后一个4.为什么它不起作用?
答案 0 :(得分:19)
你可以这样做:
dd.replace(/.(?=.{4,}$)/g, '#');
var dd = 'Hello dude';
var replaced = dd.replace(/.(?=.{4,}$)/g, '#');
document.write(replaced);
&#13;
答案 1 :(得分:2)
如果找到解决方案,请尝试以下技巧
npm install dashjs@2.9.3 --save
答案 2 :(得分:1)
要替换给定索引处的字符串中的字符,hash[i] = dd[i]
不起作用。字符串在Javascript中是不可变的。有关此问题的建议,请参见How do I replace a character at a particular index in JavaScript?。
答案 3 :(得分:0)
尝试一下:
return cc.replace(/.(?=.{4})/g, "#");