Angularjs:显示字符串中的最后四个字符,并将剩余字符替换为'X'



我正在尝试用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);

最新更新