You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用regex对不同格式字符串实现灵活部分掩码脱敏

正则实现数据掩码脱敏方案

你可以根据不同的脱敏规则直接使用对应的正则表达式,无需编写额外的特殊处理函数,各场景的实现如下:

场景1:任意长度字符串仅保留最后2位

使用正则:.(?=.{2}),替换值为*

  • 适用示例:9位字母输入AAAAAAAAA,替换后输出为*******AA,符合预期
  • 原问题中的分段串最后一段也符合该规则逻辑

场景2:任意长度字符串仅保留前3位

使用正则:(?<=.{3}).,替换值为*

  • 适用示例:8位数字输入12345678,替换后输出为123*****,符合预期

场景3:xxx-xxxxx-xxxxxxx格式串输出1**-*****-*****67

该场景为分段独立规则:首段保留第1位、中间段全掩码、末段保留最后2位,使用正则:(?:^\d(?=\d))|(?:(?<=-)\d+(?=-))|(?:\d(?=\d{2}$)),替换值为*

  • 测试输入:123-12345-1234567,替换后输出正好是1**-*****-*****67

原代码问题说明

之前的写法\d(?=\d{2})没有限制预查范围为同分段,会把全串后方存在至少2位数字的所有数字都替换,因此出现首段首位被替换、中间段后两位未被掩码的错误。

内容的提问来源于stack exchange,提问作者user10586382

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:36:03