910 Stimmen

Wie entfernt man Text aus einer Zeichenkette?

Ich habe eine data-123 String.

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

21voto

1- Wenn ist die Sequenzen in Ihrem String:

let myString = "mytest-text";
let myNewString = myString.replace("mytest-", "");

die Antwort lautet Text

2- wenn Sie die ersten 3 Zeichen entfernen möchten:

"mytest-text".substring(3);

die Antwort lautet est-text

17voto

Ranjit Kanojia Punkte 171

Bsp:-

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

Ich hoffe, dass dies für Sie funktioniert.

14voto

Diese kleine Funktion, die ich entwickelt habe, hat bei mir immer 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 cool!!";
string.deleteWord('the'); // Returns text is cool!!

Ich weiß, es ist nicht das Beste, aber es hat bei mir immer funktioniert :)

14voto

Kamil Kiełczewski Punkte 69048

Leistung

Heute 2021.01.14 führe ich Tests auf MacOs HighSierra 10.13.6 mit Chrome v87, Safari v13.1.2 und Firefox v84 für ausgewählte Lösungen durch.

Ergebnisse

Für alle Browser

  • Die Lösungen Ba, Cb und Db sind bei langen Saiten am schnellsten
  • Lösungen Ca, Da sind am schnellsten für kurze Strings
  • Die Lösungen Ab und E sind langsam für lange Saiten
  • Lösungen Ba, Bb und F sind langsam für kurze Saiten

enter image description here

Einzelheiten

Ich führe 2 Testfälle durch:

  • kurze Zeichenkette - 10 Zeichen - Sie können sie ausführen HIER
  • lange Zeichenfolge - 1 000 000 Zeichen - Sie können sie ausführen HIER

Der folgende Ausschnitt enthält Lösungen Aa Ab Ba Bb Ca Cb Da Db E F

// https://stackoverflow.com/questions/10398931/how-to-strToRemove-text-from-a-string

// https://stackoverflow.com/a/10398941/860099
function Aa(str,strToRemove) {
  return str.replace(strToRemove,'');
}

// https://stackoverflow.com/a/63362111/860099
function Ab(str,strToRemove) {
  return str.replaceAll(strToRemove,'');
}

// https://stackoverflow.com/a/23539019/860099
function Ba(str,strToRemove) {
  let re = strToRemove.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // regexp escape char
  return str.replace(new RegExp(re),'');
}

// https://stackoverflow.com/a/63362111/860099
function Bb(str,strToRemove) {
  let re = strToRemove.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // regexp escape char
  return str.replaceAll(new RegExp(re,'g'),'');
}

// https://stackoverflow.com/a/27098801/860099
function Ca(str,strToRemove) {
  let start = str.indexOf(strToRemove);
  return str.slice(0,start) + str.slice(start+strToRemove.length, str.length);
}

// https://stackoverflow.com/a/27098801/860099
function Cb(str,strToRemove) {
  let start = str.search(strToRemove);
  return str.slice(0,start) + str.slice(start+strToRemove.length, str.length);
}

// https://stackoverflow.com/a/23181792/860099
function Da(str,strToRemove) {
  let start = str.indexOf(strToRemove);
  return str.substr(0, start) + str.substr(start + strToRemove.length);
}

// https://stackoverflow.com/a/23181792/860099
function Db(str,strToRemove) {
  let start = str.search(strToRemove);
  return str.substr(0, start) + str.substr(start + strToRemove.length);
}

// https://stackoverflow.com/a/49857431/860099
function E(str,strToRemove) {
  return str.split(strToRemove).join('');
}

// https://stackoverflow.com/a/45406624/860099
function F(str,strToRemove) {
    var n = str.search(strToRemove);
    while (str.search(strToRemove) > -1) {
        n = str.search(strToRemove);
        str = str.substring(0, n) + str.substring(n + strToRemove.length, str.length);
    }
    return str;
}

let str = "data-123";
let strToRemove = "data-";

[Aa,Ab,Ba,Bb,Ca,Cb,Da,Db,E,F].map( f=> console.log(`${f.name.padEnd(2,' ')} ${f(str,strToRemove)}`));

This shippet only presents functions used in performance tests - it not perform tests itself!

Und hier sind Beispielergebnisse für Chrom

enter image description here

13voto

ARC Punkte 1003
str.split('Yes').join('No'); 

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

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