我正在尝试用X
替换字符,应该看起来像这样XXXXXT123
我试过这个:
var sno = 'TEST123';
alert(sno.slice(0,3).replaceWith('X'));
但是在控制台中它显示错误
未捕获的类型错误: sno.slice(...).替换与不是 函数(匿名函数)
这样做(@georg巧妙地建议):
sno.replace(/.(?=.{4})/g, "X");
这将完成这项工作:
sno.replace(/^.+(?=....)/, function (str) { return str.replace(/./g, "X"); });
第一个正则表达式/^.+(?=....)/
匹配除最后四个字符之外的所有字符。
这些匹配字符被馈送到提供的函数中。该函数的返回值是匹配字符应替换为的值。
replace(/./g, "X")
将所有字符替换为 X
。
var sno = "TEST123";
id.slice(-5);
id.slice(-1);
alert(Array(chars + 1).join('X') + test.slice(3));
可以通过实现以下逻辑来实现
var sno = 'TEST1112323';
String.prototype.replaceBetween = function(start, end, text) {
return this.substr(0, start) + this.substr(start, end).replace(/./g, 'X') + this.substr(end);
};
sno = sno.replaceBetween(0, sno.length - 4, "x");
console.log('replaced text', sno);
尝试这样的事情,我已经拆分它以添加一些解释
var sno = 'TEST123';
var chars = 4;
var prefix = Array(sno.length - chars + 1).join('X'); // Creates an array and joins it with Xs, has to be + 1 since they get added between the array entries
var suffix = sno.slice(-4); // only use the last 4 chars
alert(prefix + suffix);