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

求助:使用正则表达式实现符合要求的邮箱掩码功能

邮箱掩码实现方案

根据你的需求,核心规则是:

  • @前的本地部分:若长度大于3,保留最后3个字符,其余替换为星号;长度≤3则全部保留
  • @后的域名部分:若长度大于3,保留前3个字符,其余替换为星号;长度≤3则全部保留

下面是符合要求的Kotlin实现代码:

fun maskEmail(email: String): String {
    // 分割邮箱为本地部分和域名部分,假设输入为合法邮箱(包含且仅包含一个@)
    val parts = email.split("@")
    if (parts.size != 2) return email // 处理非法邮箱,直接返回原字符串

    val localPart = parts[0]
    val domainPart = parts[1]

    // 处理本地部分
    val maskedLocal = when {
        localPart.length <= 3 -> localPart
        else -> "*".repeat(localPart.length - 3) + localPart.takeLast(3)
    }

    // 处理域名部分
    val maskedDomain = when {
        domainPart.length <= 3 -> domainPart
        else -> domainPart.take(3) + "*".repeat(domainPart.length - 3)
    }

    return "$maskedLocal@$maskedDomain"
}

代码验证

用你的测试用例验证:

  1. 输入 asxyz@ifyourock.com → 输出 **xyz@ify**********
  2. 输入 xyz@gmail.com → 输出 xyz@gma******
  3. 输入 asxyz.abc@gmail.com → 输出 ******abc@gma******
  4. 输入 car@domain.com → 输出 car@dom*******
  5. 输入 as@domain.com → 输出 as@dom*******

所有输出均符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:05:27