You need to enable JavaScript to run this app. 如何用JavaScript正则实现货币值转保密编码 重复字符替换为Z
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript正则实现货币值转保密编码 重复字符替换为Z

实现代码

直接在原有逻辑基础上补充一次正则替换即可满足要求,完整可运行代码如下:

function number_to_code(s) {
  // 数字转对应编码字母
  s = parseFloat(s).toFixed(2).replace(/\d/g, m => ({
    '0': 'I',
    '1': 'A',
    '2': 'B',
    '3': 'C',
    '5': 'D',
    '6': 'E',
    '7': 'F',
    '8': 'G',
    '9': 'H'
  })[m]); 

  // 加千分位逗号
  s = s.replace(/\B(?=(\w{3})+(?!\w))/g, ",");

  // 单条正则实现重复字符替换,小数点后计数自动重置
  s = s.replace(/(^|(?<=\.))(.)(\2|,*\2)+/g, (match, prefix, firstChar) => 
    prefix + firstChar + match.slice(prefix.length + 1).replace(/[^,]/g, 'Z')
  );

  return s;
}

效果验证

你提供的三个测试用例运行结果完全符合预期:

  • 输入50000,输出DI,ZZZ.IZ
  • 输入2677.99,输出B,EFZ.HZ
  • 输入366666.22,输出CEZ,ZZZ.BZ

逻辑说明

  • 正则自动忽略千分位逗号的分隔影响,正确识别连续的相同字母
  • 小数点前后的字符重复计数独立,遇到小数点自动重置计数规则
  • 仅保留每组连续相同字母的第一个字符,后续所有重复字符统一替换为Z,全程仅新增一次正则替换操作,执行效率满足高性能要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 13:06:04