用#替换所有字符,最后4除外

时间:2016-02-07 17:24:29

标签: javascript loops

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.为什么它不起作用?

4 个答案:

答案 0 :(得分:19)

你可以这样做:

dd.replace(/.(?=.{4,}$)/g, '#');

&#13;
&#13;
var dd = 'Hello dude';
var replaced = dd.replace(/.(?=.{4,}$)/g, '#');
document.write(replaced);
&#13;
&#13;
&#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, "#");