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));
在这道题中,我想求出不同字符的个数(不区分大小写)。
我知道还有其他方法可以解决这个问题,但我目前的方法是识别 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));