如何解决使用正则表达式进行掩蔽处理
我将用正则表达式来掩盖单词。
检测结果如下。
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 中,您正在替换单词 BB
中的匹配项 v
(在变量 BBBBCCC
中),它将替换 BB
的第一次出现,给出**BBCCC
它适用于 AABBCCC
的第一个示例,因为 BB
是要替换的字符串中唯一出现的地方。
你可以做的是在replace的回调中使用匹配。
let word = "BBBBCCC";
const regex = /(?<=.{2}).+(?=.{3})/;
console.log(word.replace(regex,v => '*'.repeat(v.length)))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。