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

如何在JavaScript中删除字符串指定字符及其前一个字符?

如何删除字符串中指定字符及其前一个字符?

你可以用正则表达式实现最简便高效的处理,也可以优化循环方法提升性能,以下是具体方案:

方法一:正则表达式(推荐)

直接匹配任意字符后跟目标字符X的组合,替换为空即可,一行代码搞定:

const remove = (str) => str.replace(/.X/g, '');
console.log(remove("ABCXDEXFGHXIJK")); // 输出 "ABDFGIJK"

正则说明:

  • . 匹配任意单个字符(默认不含换行,若需支持换行可换成[\s\S])
  • X 精准匹配要删除的目标字符
  • g 标记表示全局匹配,会处理所有符合条件的字符组合

方法二:优化版循环(更灵活)

你原来的循环每次修改字符串都会生成新的字符串对象,长字符串场景下性能较差。改用数组构建结果会更高效:

const remove = (str) => {
  const result = [];
  for (let i = 0; i < str.length; i++) {
    if (str[i] === 'X') {
      // 遇到X就删掉前一个已经加入的字符
      result.pop();
    } else {
      result.push(str[i]);
    }
  }
  return result.join('');
};
console.log(remove("ABCXDEXFGHXIJK")); // 输出 "ABDFGIJK"

这个方法的优势是能灵活处理特殊情况,比如X出现在字符串开头(此时pop不会报错,数组为空时pop返回undefined,不影响结果)、连续出现X等场景。

两种方法对比

  • 正则法:代码极简,内置引擎优化过,性能拉满,适合大多数常规场景
  • 数组循环法:逻辑更直观,可扩展性强,适合需要自定义处理规则的复杂场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:25:28