Wie entferne ich Text aus einer Zeichenfolge?

577

Ich habe eine data-123Schnur.

Wie kann ich data-aus der Zeichenfolge entfernen, während ich die 123?

Michael Grigsby
quelle

Antworten:

1157

var ret = "data-123".replace('data-','');
console.log(ret);   //prints: 123

Docs.


Für alle zu verwerfenden Vorkommen verwenden Sie:

var ret = "data-123".replace(/data-/g,'');

PS: Die Ersetzungsfunktion gibt eine neue Zeichenfolge zurück und lässt die ursprüngliche Zeichenfolge unverändert. Verwenden Sie daher den Funktionsrückgabewert nach dem Aufruf von replace ().

Mathematik
quelle
Wie ersetze ich mehrere Ausdrücke? Müssen Sie mehrere .replace-Aufrufe verwenden?
Dror Bar
124

Dies hat nichts mit jQuery zu tun. Hierfür können Sie die JavaScript- replaceFunktion verwenden:

var str = "data-123";
str = str.replace("data-", "");

Sie können dieser Funktion auch einen regulären Ausdruck übergeben. Im folgenden Beispiel würde alles außer Zahlen ersetzt:

str = str.replace(/[^0-9\.]+/g, "");
James Johnson
quelle
Können Sie erklären, was die Regex macht? Ich verstehe nicht, warum es Zeichenfolge ersetzt, außer Zahlen, wenn 0-9angegeben wurde.
Rotimi-Best
60

Sie können "data-123".replace('data-','');, wie erwähnt, verwenden, aber replace()nur die ERSTE Instanz des übereinstimmenden Textes ersetzen , wenn Ihre Zeichenfolge so etwas wie "data-123data-"damals war

"data-123data-".replace('data-','');

ersetzt nur den ersten übereinstimmenden Text. Und Ihre Ausgabe wird sein"123data-"

DEMO

Wenn Sie also möchten, dass alle Textübereinstimmungen in einer Zeichenfolge ersetzt werden, müssen Sie einen regulären Ausdruck mit dem folgenden gFlag verwenden:

"data-123data-".replace(/data-/g,'');

Und Ihre Ausgabe wird sein "123"

DEMO2

Laaposto
quelle
28

Sie können Slice () verwenden, um Zeichen zwischen Anfang und Ende (einschließlich Endpunkt) zurückzugeben.

   string.slice(start , end);

Hier ist ein Beispiel, um zu zeigen, wie es funktioniert:

var mystr = ("data-123").slice(5); // jast define start point so output is "123"
var mystr = ("data-123").slice(5,7); // define start and end  so output is "12"
var mystr=(",246").slice(1); // returens "246"

Demo

Herr Shojaei
quelle
23

Einfaches altes JavaScript wird ausreichen - jQuery ist für eine so einfache Aufgabe nicht erforderlich:

var myString = "data-123";
var myNewString = myString.replace("data-", "");

Weitere Informationen und Verwendung finden Sie unter: .replace()Dokumente zu MDN .

James Hill
quelle
17

Ex:-

var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);

Hoffentlich funktioniert das für Sie.

Ranjit Kanojia
quelle
11

Ich war an die C # (Sharp) String.Remove-Methode gewöhnt. In Javascript gibt es keine Entfernungsfunktion für Zeichenfolgen, aber eine Substr-Funktion. Sie können die substr-Funktion ein- oder zweimal verwenden, um Zeichen aus der Zeichenfolge zu entfernen. Sie können die folgende Funktion ausführen, um Zeichen am Startindex bis zum Ende der Zeichenfolge zu entfernen, genau wie die c # -Methode zuerst String.Remove (int startIndex) überlädt:

function Remove(str, startIndex) {
    return str.substr(0, startIndex);
}

und / oder Sie können auch die folgende Funktion ausführen, um Zeichen am Startindex zu entfernen und zu zählen, genau wie bei der zweiten Überladung der c # -Methode String.Remove (int startIndex, int count):

function Remove(str, startIndex, count) {
    return str.substr(0, startIndex) + str.substr(startIndex + count);
}

und dann können Sie diese beiden Funktionen oder eine davon für Ihre Bedürfnisse verwenden!

Beispiel:

alert(Remove("data-123", 0, 5));

Ausgabe: 123


quelle
9

Diese kleine Funktion, die ich gemacht habe, hat immer für mich funktioniert :)

String.prototype.deleteWord = function (searchTerm) {
    var str = this;
    var n = str.search(searchTerm);
    while (str.search(searchTerm) > -1) {
        n = str.search(searchTerm);
        str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length);
    }
    return str;
}

// Use it like this:
var string = "text is the the cool!!";
string.deleteWord('the'); // Returns text is cool!!

Ich weiß, dass es nicht das Beste ist, aber es hat immer für mich funktioniert :)


quelle
Sie zeigen in Ihrer Antwort, wie die Ersetzungsfunktion von Zeichenfolgen mehr oder weniger funktioniert, aber tatsächlich ist die Verwendung der Ersetzungsfunktion von Zeichenfolgen viel einfacher und einfacher als Ihre!
9
str.split('Yes').join('No'); 

Dadurch werden alle Vorkommen dieser bestimmten Zeichenfolge von der ursprünglichen Zeichenfolge ersetzt.

BOGEN
quelle
8

Verwenden match()und Number()Zurückgeben einer numberVariablen:

Number(("data-123").match(/\d+$/));

// strNum = 123

Hier ist, was die obige Aussage bewirkt ... in der Mitte arbeiten:

  1. str.match(/\d+$/)- gibt ein Array zurück, das Übereinstimmungen mit einer beliebigen Länge von Zahlen am Ende von enthält str. In diesem Fall wird ein Array zurückgegeben, das ein einzelnes Zeichenfolgenelement enthält ['123'].
  2. Number()- konvertiert es in einen Zahlentyp. Da das von zurückgegebene Array .match()ein einzelnes Element enthält, Number()wird die Nummer zurückgegeben.
Brett DeWoody
quelle