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));
添加回答
舉報