如果没有变量量词,我发现这很难做到
我希望能够做一些像
这样的事情var halfStrLength = string.length /2
string = string.replace(/.(?=.{halfStrLength})/g, '*')
// replaces all but the last half of string with *
答案 0 :(得分:2)
请考虑使用str.slice(beginIndex[, endIndex])
。它返回一个新字符串。
您可能想要向下或向上舍入halfStrLength,因为您不希望尝试将字符串分成两半小数。
答案 1 :(得分:1)
您可以像这样创建新的RegExp:
var times = string.length / 2;
var regexp = new RegExp('(.{'+times+'})');
string = string.replace(regexp,'*');
答案 2 :(得分:0)
用
替换除字符串后半部分以外的所有字符串*
只需使用String.substr()
和String.padStart()
(Ecmascript 6)函数:
var s = 'halfStrLength',
half = s.substr(s.length / 2).padStart(s.length, '*');
console.log(half);