3 回答
TA贡献1831条经验 获得超9个赞
你的第一个正则表达式需要一些调整,这应该可以工作。
let reg = /.{1,5}/
let string = '123456789';
let string2 = '123';
console.log(string.replace(reg, (m) => "X".repeat(m.length)));
console.log(string2.replace(reg, (m) => "X".repeat(m.length)));
TA贡献1803条经验 获得超3个赞
您可以在以下位置使用回调函数或 lambda .replace():
var arr = ['123456789',
'123',
'123456',
'1',
'12345'];
arr.forEach(el => console.log(el, '::', el.replace(/^\d{1,5}/,
m => m.replace(/\d/g, 'X'))))
TA贡献1830条经验 获得超3个赞
如果您不是在寻找正则表达式解决方案,那么您也可以尝试将其作为一个选项。基于 substring() 方法的替代方案
function replace_String(string, numberofchar,chartoreplace) {
return string.substring(0, numberofchar).split("").map(ele => ele = chartoreplace).join("").concat(string.substring(numberofchar, string.length))
}
console.log(replace_String("123456789", 5,"X"))
console.log(replace_String("1", 1,"*"))
添加回答
举报