Angularjs:显示字符串中的最后四个字符,并用' X'

时间:2016-03-08 11:13:52

标签: javascript angularjs

我尝试用X替换字符,应该看起来像XXXXXT123

我试过了:

var sno = 'TEST123';
alert(sno.slice(0,3).replaceWith('X'));

但在控制台中显示错误

  

未捕获的TypeError:sno.slice(...)。replaceWith不是   功能(匿名功能)

4 个答案:

答案 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);