我想用星号(*)掩蔽从API返回的数据。例如,如果要从API返回一个地址,我只希望前两个字母是可见的。
示例:Lorem只是印刷和排版行业的虚拟文本。
我想要什么:Lo*Ip*是si**du*.
我创建了一个示例API,我不知道如何找到解决方案。我以为我可以用替换将文本转换成星号,但我不知道如何使前两个字母出现。
演示: 这里
如果你对我应该做什么和分享有什么想法,我会很感激的。
发布于 2021-03-02 07:22:56
你可以这样做
const s = "Lorem Ipsum is simply dummy text of the printing and typesetting industry.";
function hideWord(w) {
if (w.length < 3) return w;
return w.substring(0, 2) + '*'.repeat(w.length-2);
}
console.log(s.split(" ").map(hideWord).join(" "));输出是
Lo*** Ip*** is si**** du*** te** of th* pr****** an* ty********* in*******将字符串拆分成单词,然后将每个单词映射到隐藏版本的顶部,然后重新连接。要绘制地图,只需返回任意一个或两个字母长度的单词,对于其他字符,取前两个字符的子字符串,然后用星号填充其余的字符。
如果您希望能够从多个地方调用它,并且避免重新定义它,您也可以将所有内容封装在一个函数中。
function hideWords(s) {
return s.split(" ").map(hideWord).join(" ");
}
console.log(hideWords(s));https://stackoverflow.com/questions/66434851
复制相似问题