Heim  >  Fragen und Antworten  >  Hauptteil

Wie eliminiere ich bestimmte wiederholte Zeichen in einer Zeichenfolge?

Ich habe eine einfache Zeichenfolge mit einigen sich wiederholenden Zeichen. Kann mir bitte jemand helfen, den folgenden Ausdruck zu korrigieren, um nicht nur doppelte Zeichen, sondern alle Zeichen zu entfernen, die mehr als einmal vorkommen?

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

Ich verwende Lookahead, um übereinstimmende Zeichen zu erfassen und die Übereinstimmung durch Leerzeichen zu ersetzen. Die Frage ist, wie die einfangende Gruppe selbst ersetzt werden kann. Oder ist der gesamte Ansatz falsch?

P粉354602955P粉354602955224 Tage vor464

Antworte allen(2)Ich werde antworten

  • P粉416996828

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

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

    说明:

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

    Antwort
    0
  • P粉757432491

    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);

    Antwort
    0
  • StornierenAntwort