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

如何实现字符串内字母按数字指定次数重复?示例及疑问

字符串数字替换前序字母重复的实现方案

核心需求

将字符串中字母后的数字替换为该字母重复对应次数(数字代表额外重复次数,保留原字母),同时移除数字,例如:

输入: I Lo1ve Co4ding
输出: I Loove Coooooding


方法一:正则表达式替换(简洁高效)

利用JavaScript的String.replace()方法结合正则匹配,一次性处理所有符合模式的字符组合。

代码实现

let word = 'I Lo1ve Co4ding';
let processedStr = word.replace(/(.)(\d)/g, (_, targetChar, repeatNum) => {
  // 将数字转成数值,原字母+额外重复次数
  return targetChar.repeat(parseInt(repeatNum) + 1);
});

console.log(processedStr); // 输出: I Loove Coooooding

原理说明

  • 正则/(.)(\d)/g:
    • (.):捕获任意单个字符(即需要重复的目标字母),存入第一个捕获组
    • (\d):捕获单个数字(重复次数),存入第二个捕获组
    • g:全局匹配,遍历整个字符串找到所有符合"字母+数字"的组合
  • 替换回调函数:
    每次匹配到目标组合时,将捕获到的字母重复(数字值+1)次(原字母1次 + 额外重复数字次),用结果替换原"字母+数字"组合。

方法二:逐字符遍历(直观易懂)

如果对正则不太熟悉,可以通过遍历字符串逐个处理字符,逻辑更清晰。

代码实现

let word = 'I Lo1ve Co4ding';
let processedStr = '';

for (let i = 0; i < word.length; i++) {
  const currentChar = word[i];
  // 检查下一个字符是否为数字
  if (i < word.length - 1 && !isNaN(parseInt(word[i+1]))) {
    const repeatTimes = parseInt(word[i+1]);
    // 重复字符并添加到结果
    processedStr += currentChar.repeat(repeatTimes + 1);
    // 跳过数字字符
    i++;
  } else {
    // 非数字结尾的字符直接添加
    processedStr += currentChar;
  }
}

console.log(processedStr); // 输出: I Loove Coooooding

原理说明

  • 遍历字符串的每个字符,判断当前字符的下一个字符是否为数字
  • 若是数字:计算重复次数,将当前字符重复对应次数后加入结果,同时跳过数字字符
  • 若不是数字:直接将当前字符加入结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:01:03