如何优化邮箱处理逻辑:去域名、限10位、忽略中间点
解决方案:升级邮箱用户名处理逻辑
我来帮你把原有的邮箱域名去除逻辑,升级成符合你两个新增要求的版本!咱们一步步来实现:
核心思路
- 保留原有逻辑:先提取
@符号之前的用户名部分 - 移除用户名中所有的英文句号(
.) - 将处理后的内容截断到最多10个字符
完整代码实现
let sender = "stack.overflow@gmail.com"; // 示例输入 // 步骤1:去除@后的域名部分 if (sender.indexOf('@') !== -1) { sender = sender.substring(0, sender.indexOf("@")); } // 步骤2:移除所有英文句号 sender = sender.replace(/\./g, ''); // 步骤3:截取最多10个字符 sender = sender.substring(0, 10); console.log(sender); // 输出:stackoverf
代码解释
- 步骤1:和你原来的逻辑一致,判断字符串中是否包含
@,如果有就截取@之前的内容作为用户名。 - 步骤2:使用正则表达式
/\./g全局匹配所有英文句号,并用空字符串替换,彻底移除所有.符号。 - 步骤3:用
substring(0, 10)截取前10个字符——如果处理后的内容长度不足10,就保留全部内容;如果超过10,就只取前10位。
测试案例验证
| 输入邮箱 | 处理结果 | 说明 |
|---|---|---|
| stack.overflow@gmail.com | stackoverf | 移除.后长度为13,截取前10位 |
| 123456789@gmail.com | 123456789 | 无.,长度9,保留全部 |
| abcdefghijklmn@gmail.com | abcdefghij | 无.,长度14,截取前10位 |
| user.name.with.dots@xxx.com | usernamewit | 移除.后长度16,截取前10位 |
| no-at-sign-here.com | noatsignhe | 无@,移除.后长度12,截取前10位 |
内容的提问来源于stack exchange,提问作者Ritika Saxena
相关产品推荐
相关产品推荐

