我正在尝试替换最后四个字符的所有字符。我正在尝试以下方法:
12
目前我的字符串长度是16,但我的问题是,当我的字符串长度从16变为12或其他长度时,我会因为使用静态*
和{{1}而得到问题哈希字母。
那么,如何在留下最后4个字符时始终替换*
?
答案 0 :(得分:3)
以下内容可行:
var input = "123456789";
var output = input.replace(/.(?=.{4})/g, '*');
console.log(output);
它只对所有字符进行全局替换,后跟至少四个其他字符。由于最后四个字符后面不会有四个字符,因此它们不会被替换。每个匹配的字符都被一个星号字符替换。
答案 1 :(得分:1)
我们可以尝试使用以下替换模式:
/.*(.{4})/
然后用第一个捕获组$1
替换你的字符串:
var string = "1234567890";
var pass = Array(string.length-3).join("*") + string.replace(/.*(.{4})/, "$1");
console.log(pass);
但是我们仍然需要一些方法来为字符串的非最后四个字符生成正确数量的星号。为此,我使用了连接技巧。
答案 2 :(得分:0)
创建一个O(h)
数组,并将其与初始字符串的最后4个字符连接起来:
*