如何在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
相关产品推荐
相关产品推荐

