2 回答
TA贡献1936条经验 获得超7个赞
您只需将开头和结尾插入*函数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);
TA贡献1810条经验 获得超4个赞
我不知道这是否可以通过正则表达式来实现。对于 JS 解决方案,您可以查看下面的代码段。
它使用 String 的 substring、slice 和 repeat 方法。
substring() 方法返回开始和结束索引之间的字符串部分,或者返回到字符串的末尾。
slice() 方法提取字符串的一部分并将其作为新字符串返回,而不修改原始字符串。
repeat() 方法构造并返回一个新字符串,该字符串包含调用它的字符串的指定数量的副本,并连接在一起。
在此处了解更多信息:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Methods
const 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));
添加回答
举报
