Javascript 替换字符串开头和结尾的几个字符

Javascript 替换字符串开头和结尾的几个字符,javascript,Javascript,将第一个和最后几个字符替换为*字符,我能够解决str1的问题。如何解决剩余的一个问题。现在我可以屏蔽最后4个字符 如何屏蔽前3或4个字符?正则表达式模式有什么问题 var str1=“1234567890123456”; str1=str1。替换(/\d(?=\d{4})/g,“*”; console.log(str1) var str2=“123-456-789-101112” str2=str2。替换(/\d(?=\d{4})/g,“*”; console.log(str2)//应为***

将第一个和最后几个字符替换为*字符,我能够解决str1的问题。如何解决剩余的一个问题。现在我可以屏蔽最后4个字符

如何屏蔽前3或4个字符?正则表达式模式有什么问题

var str1=“1234567890123456”;
str1=str1。替换(/\d(?=\d{4})/g,“*”;
console.log(str1)
var str2=“123-456-789-101112”
str2=str2。替换(/\d(?=\d{4})/g,“*”;
console.log(str2)//应为***-***-***-***-**1112
var str3=“abc:def:12324-12356”
str3=str3。替换(/\d(?=\d{4})/g,“*”;

console.log(str3)//应为***:***:***:***-*2356
一个选项是先查找后跟4位数字的非空格字符。由于您也想替换字母字符,请使用字符集
[a-z\d]
,而不仅仅是
\d

const repl=str=>console.log(str.replace(/[a-z\d](?=\S*\d{4})/g,“*”);
回复(“1234567890123456”);
回复(“123-456-789-101112”);

回复(“abc:def:12324-12356”)一个选项是先查找后跟4位数字的非空格字符。由于您也想替换字母字符,请使用字符集
[a-z\d]
,而不仅仅是
\d

const repl=str=>console.log(str.replace(/[a-z\d](?=\S*\d{4})/g,“*”);
回复(“1234567890123456”);
回复(“123-456-789-101112”);


回复(“abc:def:12324-12356”)对于这些示例,您希望的输出是什么?第二个示例的问题是,据我所知,它将一行输出的每个数字都视为自己的查询-如果您将{4}更改为{2},您可以看到它只选择每个块作为自己的查询,然后将左侧的数字作为开始。我不知道如何修复它,但它可能会帮助您。如果您知道要屏蔽N个字符(数字、字符、特殊字符…),为什么要使用正则表达式而不仅仅是子字符串/汇编字符串?@CertainPerformance更新了question@CertainPerformance现在它只屏蔽最后四个字符,但我想屏蔽第一个字符中的4个字符。对于这些示例,您希望的输出是什么?第二个示例的问题是,据我所知,它将一行输出的每个数字都视为自己的查询-如果您更改{4}对于{2}您可以看到,它只选择每个块作为自己的查询,然后从左数开始。我不知道如何修复它,但它可能会帮助您。如果您知道要屏蔽N个字符(数字、字符、特殊字符…),为什么要使用正则表达式而不仅仅是子字符串/汇编字符串?@CertainPerformance更新了question@CertainPerformance现在它只屏蔽了最后四个字符,但我想屏蔽第一个ALSOTHANK中的4个字符以获得响应,但是我如何屏蔽前4个字符呢?但是这个案例不起作用,有什么想法“读:ABC:12372193128737892173”为什么正则表达式在本例中失败?读:ABC:12372193128737892173,其中包含大写字母。如果允许使用大写,请添加不区分大小写的标志。在何处添加感谢您的回复,但如何屏蔽前4个字符?如果此大小写不起作用,请了解“read:ABC:12372193128737892173”正则表达式在本例中失败的原因“read:ABC:12372193128737892173”,其中包含大写字母。如果允许使用大写,请添加不区分大小写的标志。在何处添加该标志