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

如何在JavaScript中用replace()替换所有单词的最后指定字符串

JavaScript替换每个单词中最后出现的指定字符串

要实现给每个单词替换最后出现的指定内容,比如把"Trees are expensives"改成"Treis ari expensivis"(这里是把每个单词最后一个"e"替换为"i"),可以用两种方法实现:

方法一:分割单词后逐个处理(通用型,支持多字符目标)

这种方法兼容性强,不管目标是单个字符还是多字符串都能处理,步骤清晰:

  1. 把原字符串按空格分割成单词数组
  2. 遍历每个单词,找到目标内容最后一次出现的位置
  3. 对单词进行局部替换
  4. 把处理后的单词重新拼接成字符串

代码示例:

const originalStr = "Trees are expensives";
const targetSubstr = "e";
const replaceWith = "i";

const processedStr = originalStr.split(/\s+/)
  .map(word => {
    const lastPos = word.lastIndexOf(targetSubstr);
    if (lastPos === -1) return word; // 单词里没有目标内容,直接返回
    // 截取目标位置前后的内容,拼接替换后的结果
    return word.slice(0, lastPos) + replaceWith + word.slice(lastPos + targetSubstr.length);
  })
  .join(' ');

console.log(processedStr); // 输出:Treis ari expensivis

如果要替换多字符目标,比如把每个单词最后出现的"es"换成"is",只需修改targetSubstr为"es"、replaceWith为"is",原字符串"Trees are expensives"会变成"Treis are expensivis"。

方法二:正则表达式替换(适合单个字符目标)

如果目标是单个字符,可以用正则的正向断言,匹配每个单词内最后一次出现的目标字符:

const originalStr = "Trees are expensives";
const processedStr = originalStr.replace(/e(?=\w*\b)(?!.*e)/g, 'i');
console.log(processedStr); // 输出:Treis ari expensivis

正则说明:

  • e:匹配目标字符
  • (?=\w*\b):正向断言,确保后面是单词的剩余部分直到单词边界
  • (?!.*e):负向断言,确保后面没有更多的目标字符,也就是当前匹配的是单词内最后一个e

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:20:51