Maison  >  Questions et réponses  >  le corps du texte

Comment éliminer des caractères répétés spécifiques dans une chaîne ?

J'ai une chaîne simple avec quelques caractères répétitifs. Quelqu'un peut-il m'aider à corriger l'expression ci-dessous pour supprimer non seulement les caractères en double, mais également tous les caractères qui apparaissent plus d'une fois.

console.log('aaabbxxstring'.replace(/(.)(?=.*?)/g,'')); // string

J'utilise l'anticipation pour capturer les caractères correspondants et remplacer la correspondance par des espaces. La question est de savoir comment remplacer le groupe de capture lui-même. Ou toute l’approche est-elle incorrecte ?

P粉354602955P粉354602955174 Il y a quelques jours347

répondre à tous(2)je répondrai

  • P粉416996828

    P粉4169968282024-04-01 09:45:52

    console.log('aaabbxxstring'.replace(/(.)+/g, '')); // string

    Description :

    (.) captures a single character.
    + matches one or more occurrences of the captured character.
    /g performs a global search to replace all occurrences.

    répondre
    0
  • P粉757432491

    P粉7574324912024-04-01 00:37:29

    Lorsque vous divisez une chaîne autour de caractères, utilisez la longueur du tableau résultant pour compter les occurrences.

    str.split(c).length

    Vous donne le nombre d'occurrences plus 1.

    Convertissez la chaîne en tableau, filtrez en utilisant le nombre d'occurrences, concaténez-la en chaîne.

    var str = 'aaabxbxxstring';
    
    const count = (str, c) => str.split(c).length - 1
    
    str = [...str].filter(c => count(str,c) < 2).join('')
    
    console.log(str);

    répondre
    0
  • Annulerrépondre