如何在typescript/javascript中将123456789转换为123***789?

如何在typescript/javascript中将123456789转换为123***789?,javascript,typescript,Javascript,Typescript,是否有任何方法或函数能够转换此类场景?我的项目需要以这种格式显示userID,前3个int/string和后3个int/string应该能够显示数字,而中间部分应该用*试试这个简单的解决方案,只需将文本分成三组,首先是中间,最后是中间,然后转换中间 const convertText = (text) => { const firstSet = text.slice(0, 3); const lastSet = text.slice(text.length - 3, text.le

是否有任何方法或函数能够转换此类场景?我的项目需要以这种格式显示userID,前3个int/string和后3个int/string应该能够显示数字,而中间部分应该用*

试试这个简单的解决方案,只需将文本分成三组,首先是中间,最后是中间,然后转换中间

const convertText = (text) => {
  const firstSet = text.slice(0, 3);
  const lastSet = text.slice(text.length - 3, text.length);
  const middleSet = text.slice(3, text.length - 3);
  var starSet = "";
  for (var i = 0; i < middleSet.length; i++) {
    starSet = starSet.concat("*");
  }
  const convertedText = firstSet.concat(starSet, lastSet);
  return convertedText;
};
const convertText=(text)=>{
const firstSet=text.slice(0,3);
const lastSet=text.slice(text.length-3,text.length);
const middleSet=text.slice(3,text.length-3);
var starSet=“”;
对于(变量i=0;i
由于JS字符串是不可变的,因此只能通过构建新字符串来实现这一点。最简单的方法之一是将字符串拆分为单个字符并将其插入数组,因为数组是可变的。您可以使用
Array.from
执行此操作

然后可以修改单个字符。在您的情况下,由于您希望更改一系列值,使它们都是相同的值,因此可以使用
Array.fill
,它将用一个值填充数组的一个子部分

现在您已经更改了值,只需将它们重新组合成一个字符串,您可以使用
Array.join

let hideMiddle = (str) => Array.from(str).fill("*", 3, -3).join("");

这可以通过内置的子字符串函数实现;还有一些用于屏蔽文本的库可能会有所帮助。你能给我们看看你的代码尝试吗?也许试试这个?如果“userid”是6个字符,你会怎么做?