如何在JS中屏蔽字符串的某些位置

我有一些日期如下。

我想掩盖这些值。


const name = "Smith"

const name2 = "Kithmatch"

const number = "342782828"

const number2 = "012221112230"

蒙面后,


const name = "S***h"

const name2 = "K*******h"

const number = "342**2828"

const number2 = "012*****2230"

姓名和号码之间有两个条件。

名义上只有第一个和最后一个字符串存在。并且在前面的第三个数字和最后的四个数字中幸存下来。

如何在 javascript 中进行此屏蔽?非常感谢您阅读它。


牛魔王的故事
浏览 219回答 2
2回答

LEATH

您只需将开头和结尾插入*函数repeat即可。和变量可以简单地调整start。endStringslice获取我们将要插入的字符串的一部分+=请注意,如果字符太少,*则不会插入 no。var s = "342782828";var start = 1;var end = 1;if (!isNaN(s)) { // check if is number  start = 3;  end = 4;}result = s.slice(0, start);result += "*".repeat(s.length-start-end);result += s.slice(s.length-end);console.log(result);

慕莱坞森

我不知道这是否可以通过正则表达式来实现。对于 JS 解决方案,您可以查看下面的代码段。它使用 String 的 substring、slice 和 repeat 方法。substring() 方法返回开始和结束索引之间的字符串部分,或者返回到字符串的末尾。slice() 方法提取字符串的一部分并将其作为新字符串返回,而不修改原始字符串。repeat() 方法构造并返回一个新字符串,该字符串包含调用它的字符串的指定数量的副本,并连接在一起。在此处了解更多信息:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Methodsconst name = "Smith"const name2 = "Kithmatch"const number = "342782828"const number2 = "012221112230"const maskName = (name) => {  const mask = "*";  let maskedName = name.substring(0,1) + mask.repeat(name.length-2) + name.slice(-1);  return maskedName;};const maskNumber = (number) => {  const mask = "*";  let maskedNumber = number.substring(0, 3) + mask.repeat(number.length-7) + number.slice(-4);  return maskedNumber;};console.log(maskName(name));console.log(maskName(name2));console.log(maskNumber(number));console.log(maskNumber(number2));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript