猿问

JavaScript 用 * 替换前 5 个字符

我需要 Javascript Regex 来替换前 5 个字符。下面是几个例子。第一行是输入,第二行是预期输出。你能告诉我如何实现这一目标吗?


我试过以下。但是如果输入小于 4,它们都不起作用。


.{5} to ***** and ^\d{5} to *****

例子


123456789

XXXXX6789


123

XXX


123456

XXXXX6


1

X


12345

XXXXX


LEATH
浏览 401回答 3
3回答

天涯尽头无女友

你的第一个正则表达式需要一些调整,这应该可以工作。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))); 

繁星点点滴滴

您可以在以下位置使用回调函数或 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'))))

牛魔王的故事

如果您不是在寻找正则表达式解决方案,那么您也可以尝试将其作为一个选项。基于 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,"*"))
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答