我尝试用X
替换字符,应该看起来像XXXXXT123
我试过了:
var sno = 'TEST123';
alert(sno.slice(0,3).replaceWith('X'));
但在控制台中显示错误
未捕获的TypeError:sno.slice(...)。replaceWith不是 功能(匿名功能)
答案 0 :(得分:3)
做这样做(@georg巧妙建议):
sno.replace(/.(?=.{4})/g, "X");
这将完成这项工作:
sno.replace(/^.+(?=....)/, function (str) { return str.replace(/./g, "X"); });
第一个正则表达式/^.+(?=....)/
匹配除最后四个字符以外的所有字符。
这些匹配的字符被输入到提供的函数中。该函数的返回值是匹配字符应替换为的内容。
replace(/./g, "X")
用X
替换所有字符。
答案 1 :(得分:0)
var sno = "TEST123";
id.slice(-5);
id.slice(-1);
alert(数组(字符+ 1).join(' X')+ test.slice(3));
答案 2 :(得分:0)
尝试这样的事情,我将其拆分以添加一些解释
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);
答案 3 :(得分:0)
可以通过实施以下逻辑来实现
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);