Wie entferne ich einen Teil einer Zeichenfolge?

Lesezeit: 3 Minuten

Benutzer-Avatar
NullVoxPopuli

Sagen wir, ich habe test_23 und ich möchte entfernen test_.

Wie mache ich das?

Das Präfix davor _ kann wechseln.

Benutzer-Avatar
Andi E

Meine bevorzugte Art, dies zu tun, ist “splitting and popping”:

var str = "test_23";
alert(str.split("_").pop());
// -> 23

var str2 = "adifferenttest_153";
alert(str2.split("_").pop());
// -> 153

Teilt() teilt eine Zeichenfolge unter Verwendung einer angegebenen Trennzeichenfolge in ein Array von Zeichenfolgen auf.
Pop() entfernt das letzte Element aus einem Array und gibt dieses Element zurück.

  • Der C-Programmierer in mir zuckt bei der Anzahl der Objekte zusammen, die bei dieser einfachen Split/Pop-Operation erstellt und zerstört werden 🙂 Wahrscheinlich: ein Array, 2 Strings, ein weiteres Array, ein weiterer String.

    – GUI13

    3. Mai 2013 um 14:09 Uhr

  • @xgbi: Ja, JavaScript- und C-Entwickler haben jedoch ziemlich unterschiedliche Philosophien 😉

    – Andi E

    3. Mai 2013 um 15:16 Uhr

  • Sie könnten Ihrer Antwort die Möglichkeit der Verwendung hinzufügen alert(str.split("_")[1]); seit .split erstellt ein Array mit zwei Elementen, [0] vor dem sein "_" und [1] nach. Das war eigentlich das, wonach ich gesucht habe, aber Ihre Antwort hat mir geholfen, dorthin zu gelangen ^^

    – Fernando Silva

    1. August 2014 um 16:04 Uhr

  • @FernandoSilva Dann sagen wir, wenn es zwei “_” oder mehr gäbe, würden wir ein Array mit 3 Elementen erhalten und das dritte auch verwenden/löschen können, oder? Übrigens, +1. Genau das, wonach ich gesucht habe.

    – Der leichte Sabrix

    5. August 2015 um 10:58 Uhr

  • @TheLightSabrix schau dir an, wie es funktioniert, es ist viel einfacher als zu versuchen, es im Text zu erklären. jsbin.com/keleguzacu/edit?js, Konsole

    – Fernando Silva

    16. August 2015 um 22:03 Uhr

Angenommen, Ihre Zeichenfolge beginnt immer mit 'test_':

var str="test_23";
alert(str.substring('test_'.length));

  • Was ist, wenn es nicht mit dem Test beginnt?

    – NullVoxPopuli

    25. August 2010 um 18:11 Uhr

  • Verwenden Sie replace, aber das funktioniert nicht, wenn es mehrere Vorkommen gibt. str.replace(“test_”, “”); gibt eine neue Zeichenfolge zurück, in der alle Vorkommen von “test_” entfernt wurden. Wenn also nur ein Vorkommen garantiert ist, sollte es in Ordnung sein. Wenn es jedoch mehrere gibt, würde ich str = str.substring(0, str.indexOf(“test_)” + str.substring(str.indexOf(“test_”) + 5, str.length) verwenden; das weiß ich ist ein alter Beitrag, aber wenn jemand darauf stößt, könnte er mindestens einer Person da draußen irgendwo helfen.

    – Georg Xaver

    31. März 2020 um 19:52 Uhr


Benutzer-Avatar
anonym

Wenn Sie wollen Löschen Teil der Saite

let str = "try_me";
str.replace("try_", "");
// me

Wenn Sie wollen ersetzen Teil der Saite

let str = "try_me";
str.replace("try_", "test_");
// test_me

Benutzer-Avatar
Jassir Ennazk

Der einfachste Weg ist meiner Meinung nach:

var s = yourString.replace(/.*_/g,"_");

string = "test_1234";
alert(string.substring(string.indexOf('_')+1));

Es funktioniert sogar, wenn die Zeichenfolge keinen Unterstrich hat. Probieren Sie es aus http://jsbin.com/

  • Dies hat weniger Overhead, aber mehr Code als die Antwort von Andy E. Beides funktioniert, aber ich bevorzuge diese Methode.

    – Palschwimmen

    25. August 2010 um 19:00 Uhr


Benutzer-Avatar
Filippo Mazzamuto

let text="test_23";
console.log(text.substring(text.indexOf('_') + 1));

  • Dies hat weniger Overhead, aber mehr Code als die Antwort von Andy E. Beides funktioniert, aber ich bevorzuge diese Methode.

    – Palschwimmen

    25. August 2010 um 19:00 Uhr


1228780cookie-checkWie entferne ich einen Teil einer Zeichenfolge?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy