使用正则表达式进行掩蔽处理
Masking Processing with regex
我要用正则表达式屏蔽单词。
检测结果如下
regex: (?<=.{2}).*(?=.{3})
word : AABBCCC
Result : BB
使用如下代码正常运行如下图
word.match(new RegExp(regex, 'gi')).forEach(v => {
word = word.replace(v, '*'.repeat(v.length));
});
结果:AA**CCC
但是如果单词是 BBBBCCC,结果是 **BBCCC
我要BB**CCC,怎样才能得到我想要的结果?
在 foreach 中,您要替换单词 BBBBCCC
中的匹配 BB
(在变量 v
中),这将替换第一次出现的 BB
给予 **BBCCC
它适用于 AABBCCC
的第一个示例,因为 BB
是要替换的字符串中唯一出现的地方。
你可以在replace的回调中使用match。
let word = "BBBBCCC";
const regex = /(?<=.{2}).+(?=.{3})/;
console.log(word.replace(regex, v => '*'.repeat(v.length)))
我要用正则表达式屏蔽单词。
检测结果如下
regex: (?<=.{2}).*(?=.{3})
word : AABBCCC
Result : BB
使用如下代码正常运行如下图
word.match(new RegExp(regex, 'gi')).forEach(v => {
word = word.replace(v, '*'.repeat(v.length));
});
结果:AA**CCC
但是如果单词是 BBBBCCC,结果是 **BBCCC 我要BB**CCC,怎样才能得到我想要的结果?
在 foreach 中,您要替换单词 BBBBCCC
中的匹配 BB
(在变量 v
中),这将替换第一次出现的 BB
给予 **BBCCC
它适用于 AABBCCC
的第一个示例,因为 BB
是要替换的字符串中唯一出现的地方。
你可以在replace的回调中使用match。
let word = "BBBBCCC";
const regex = /(?<=.{2}).+(?=.{3})/;
console.log(word.replace(regex, v => '*'.repeat(v.length)))