Noob 语法帮助:如何使用索引子字符串全局替换字符串中的字符,例如文字[我]?

Noob Syntax help: How to global replace characters in a string using an indexed substring e.g. text[i]?

在这道题中,我想求出不同字符的个数(不区分大小写)。 我知道还有其他方法可以解决这个问题,但我目前的方法是识别 text 字符串中的第一个字符并全局删除所有等效字符,+1 到计数器并冲洗并重复所有剩余字符。在网上查看 JS 文档,我似乎无法弄清楚如何进行这项工作,我想有人可以教我如何为此做正则表达式。谢谢


let text = "aAabbbacccaaade";
text = text.replace(text[0]/gi,"");

// text = text.replace(/text[0]/gi,""); => aAabbbacccaaade
// text = text.replace(text[0]/gi,""); => gi is undefined error.


使用 new 构造函数和字符串参数创建您的正则表达式:

let text = "aAabbbacccaaade";
console.log(text);

let regex = new RegExp(text[0], "gi");
text = text.replace(regex,"");
console.log(text);

循环这应该适用于您的方法:

const text = "aAabbbacccaaade";

function countUnique(str) {
  let mutableStr = str;
  let count = 0;
  while (mutableStr.length > 0) {
    let r = new RegExp(mutableStr[0], "gi");
    mutableStr = mutableStr.replace(r, "");
    count++;
  }
  return count;
}

console.log(countUnique(text));