我有一個(gè)簡(jiǎn)單的字符串,其中有一些重復(fù)的字符。有人可以幫我修復(fù)下面的表達(dá)式,不僅刪除重復(fù)的字符,而且刪除出現(xiàn)次數(shù)超過(guò) 1 次的所有字符。
console.log('aaabbxxstring'.replace(/(.)(?=.*?)/g,'')); // string
我正在使用前瞻捕獲匹配字符,并將匹配項(xiàng)替換為空格。問(wèn)題是如何替換捕獲組本身。還是整個(gè)方法都不正確?
console.log('aaabbxxstring'.replace(/(.)+/g, '')); // string
說(shuō)明:
(.) captures a single character. + matches one or more occurrences of the captured character. /g performs a global search to replace all occurrences.
當(dāng)您圍繞字符拆分字符串時(shí),使用結(jié)果數(shù)組的長(zhǎng)度來(lái)計(jì)算出現(xiàn)次數(shù)。
str.split(c).length
為您提供出現(xiàn)次數(shù)加 1。
將字符串轉(zhuǎn)換為數(shù)組,使用出現(xiàn)的次數(shù)進(jìn)行過(guò)濾,連接到字符串。
var str = 'aaabxbxxstring';
const count = (str, c) => str.split(c).length - 1
str = [...str].filter(c => count(str,c) < 2).join('')
console.log(str);