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

如何使用JS正则表达式匹配提取字符串中所有不重复的字符

JS提取字符串中仅首次出现字符的实现方案

可以通过正则表达式实现该需求,核心逻辑是匹配所有后续会重复出现的字符,直接删除即可保留所有字符的首次出现结果。

正则实现代码

function getUniqueFirst(str) {
  // 匹配所有后续还会出现的重复字符,替换为空
  return str.replace(/(.)(?=.*\1)/g, '');
}

// 测试用例
console.log(getUniqueFirst("abczacg")); // 输出:abczg
console.log(getUniqueFirst("aabbccdd")); // 输出:abcd
console.log(getUniqueFirst("hello world")); // 输出:helo wrd

正则规则说明

  • (.):捕获组,匹配任意单个字符
  • (?=.*\1):正向肯定预查,校验当前捕获的字符在后方字符串中是否还会出现
  • g:全局匹配标识符,遍历替换所有符合条件的字符

可读性更高的非正则实现

如果对正则可读性有要求,也可以用Set实现,逻辑更直观:

function getUniqueFirst(str) {
  const charSet = new Set();
  return str.split('').filter(char => {
    if(!charSet.has(char)) {
      charSet.add(char);
      return true;
    }
    return false;
  }).join('');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:00:05