Rumah > Soal Jawab > teks badan
Saya mempunyai rentetan ringkas dengan beberapa aksara berulang. Bolehkah seseorang membantu saya membetulkan ungkapan di bawah untuk mengalih keluar bukan sahaja aksara pendua tetapi semua aksara yang berlaku lebih daripada 1 kali.
console.log('aaabbxxstring'.replace(/(.)(?=.*?)/g,'')); // string
Saya menggunakan lookahead untuk menangkap watak yang sepadan dan menggantikan padanan dengan ruang. Persoalannya ialah bagaimana untuk menggantikan kumpulan penangkap itu sendiri. Atau adakah keseluruhan pendekatan tidak betul?
P粉4169968282024-04-01 09:45:52
console.log('aaabbxxstring'.replace(/(.)+/g, '')); // string
Penerangan:
(.) 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
Apabila anda membelah rentetan di sekeliling aksara, gunakan panjang tatasusunan yang terhasil untuk mengira kejadian.
str.split(c).length
Memberi anda bilangan kejadian tambah 1.
Tukar rentetan kepada tatasusunan, tapis menggunakan kiraan kejadian, cantumkan kepada rentetan.
var str = 'aaabxbxxstring';
const count = (str, c) => str.split(c).length - 1
str = [...str].filter(c => count(str,c) < 2).join('')
console.log(str);