53 Stimmen

MyString.replace(VARIABLE, "") ...... aber global

Wie kann ich eine Variable verwenden, um alle Instanzen einer Teilzeichenfolge aus einer Zeichenfolge zu entfernen? (zum Entfernen denke ich, dass der beste Weg ist, global durch Nichts zu ersetzen... oder?)

Wenn ich diese 2 Zeichenfolgen habe,

myString = "Dieser Satz ist ein Beispiel für einen Satz."
oldWord = " Satz"

dann etwas wie das

myString.replace(oldWord, "");

ersetzt nur die erste Instanz der Variablen in der Zeichenfolge.

aber wenn ich das globale g hinzufüge wie dieses myString.replace(/oldWord/g, "");, funktioniert es nicht, weil es denkt, dass oldWord in diesem Fall die Teilzeichenfolge ist, nicht eine Variable. Wie kann ich das mit der Variable machen?

94voto

Derek 朕會功夫 Punkte 88112

Nun kannst du das verwenden:

var reg = new RegExp(oldWord, "g");
myString.replace(reg, "");

oder einfach:

myString.replace(new RegExp(oldWord, "g"), "");

12voto

Erik Reppen Punkte 4527

Sie müssen den Konstruktor verwenden, anstatt die wörtliche Syntax beim Übergeben von Variablen zu verwenden. Verwenden Sie die wörtliche Syntax für wörtliche Zeichenfolgen, um eine verwirrende Escape-Syntax zu vermeiden.

var oldWordRegEx = new RegExp(oldWord,'g');

myString.replace(oldWordRegEx,"");

7voto

GOTO 0 Punkte 34193

Keine Notwendigkeit, hier einen regulären Ausdruck zu verwenden: Teilen Sie den String um Treffer des Teilstrings, den Sie entfernen möchten, dann fügen Sie die verbleibenden Teile zusammen:

myString.split(oldWord).join('')

In dem Beispiel des OP:

var myString = "Dieser Satz ist ein Beispiel Satz.";
var oldWord = " Satz";
console.log(myString.split(oldWord).join(''));

-2voto

MatthewS Punkte 9

Laut den Dokumenten von MDN können Sie dies tun:

var re = /apples/gi;
var str = 'Äpfel sind rund, und Äpfel sind saftig.';
var newstr = str.replace(re, 'Orangen');
console.log(newstr);  // Orangen sind rund, und Orangen sind saftig.

wo /gi ihm sagt, eine globale Ersetzung durchzuführen und die Groß- und Kleinschreibung zu ignorieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X