2 回答

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
您只需將開(kāi)頭和結(jié)尾插入*函數(shù)repeat即可。和變量可以簡(jiǎn)單地調(diào)整start。endStringslice獲取我們將要插入的字符串的一部分+=
請(qǐng)注意,如果字符太少,*則不會(huì)插入 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貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
我不知道這是否可以通過(guò)正則表達(dá)式來(lái)實(shí)現(xiàn)。對(duì)于 JS 解決方案,您可以查看下面的代碼段。
它使用 String 的 substring、slice 和 repeat 方法。
substring() 方法返回開(kāi)始和結(jié)束索引之間的字符串部分,或者返回到字符串的末尾。
slice() 方法提取字符串的一部分并將其作為新字符串返回,而不修改原始字符串。
repeat() 方法構(gòu)造并返回一個(gè)新字符串,該字符串包含調(diào)用它的字符串的指定數(shù)量的副本,并連接在一起。
在此處了解更多信息: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));
添加回答
舉報(bào)