用 x 替换用户名的最后 5 个字符

Miz*_*zan 1 javascript jquery hide

我必须隐藏用户名的最后 5 个字符。下面是代码

<ul>
<li>
            </dl>
                <dl>
                <dt>Username:</dt>
                <dd id="up-d-username">AZRT435231
                </dd>
            </dl>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我需要用“X”替换最后 5 个字符,因此输出应该是 AZRT4XXXXX 。用户是否有可能使用 firebug 等工具从页面源中看不到此名称?

ale*_*lex 5

"AZRT435231".slice(0, -5) + "XXXXX";
Run Code Online (Sandbox Code Playgroud)

用户仍然可以阅读原始页面源。如果这很重要,请在它到达客户端之前使用服务器端语言对其进行处理。

你可以制作一个更便携的版本......

var replaceLastNChars = function(str, replace, num) {
     return str.slice(0, -num) + Array(num + 1).join(replace);
};
Run Code Online (Sandbox Code Playgroud)

结合起来...

$("#up-d-username")
 .text(function(i, text) { return replaceLastNChars(text, "X", 5); });
Run Code Online (Sandbox Code Playgroud)

没有jQuery,为了好玩......

var elem = document.getElementById("up-d-username").firstChild;

elem.data = replaceLastNChars(elem.data, "X", 5);
Run Code Online (Sandbox Code Playgroud)

较新的浏览器...

var elem = document.querySelector("#up-d-username");

elem.textContent = replaceLastNChars(elem.textContent, "X", 5);
Run Code Online (Sandbox Code Playgroud)