我有一个简单的字符串,其中有一些重复的字符。有人可以帮我修复下面的表达式,不仅删除重复的字符,而且删除出现次数超过 1 次的所有字符。
console.log('aaabbxxstring'.replace(/(.)(?=.*?)/g,'')); // string
我正在使用前瞻捕获匹配字符,并将匹配项替换为空格。问题是如何替换捕获组本身。还是整个方法都不正确?
P粉4169968282024-04-01 09:45:52
console.log('aaabbxxstring'.replace(/(.)+/g, '')); // string
说明:
(.) captures a single character. + matches one or more occurrences of the captured character. /g performs a global search to replace all occurrences.
P粉7574324912024-04-01 00:37:29
当您围绕字符拆分字符串时,使用结果数组的长度来计算出现次数。
str.split(c).length
为您提供出现次数加 1。
将字符串转换为数组,使用出现的次数进行过滤,连接到字符串。
var str = 'aaabxbxxstring';
const count = (str, c) => str.split(c).length - 1
str = [...str].filter(c => count(str,c) < 2).join('')
console.log(str);