2016-07-04 4 views
0

Ich weiß, dass:Wie extrahiere ich eine Teilzeichenkette und subtrahiere sie von der ursprünglichen Zeichenkette in Javascript?

> original_string = "bears and cats and dogs" 
'bears and cats and dogs' 
> useful_array = original_string.match(/cats/) 
[ 'cats', index: 10, input: 'bears and cats and dogs' ] 
> sub_string = useful_array[0] 
'cats' 

Wie würde ich mich über das Erhalten:

> modified_string 
'bears and and dogs' 

Dank

Edit:

> original_string = "bears and cats and dogs" 
'bears and cats and dogs' 
> original_string.replace(/cats/, "") 
'bears and and dogs' 

Aber gibt es einen anderen Weg? Ich bin von Ruby kommen, so gibt es immer eine bissige Methode für alles

+0

Dies ist in http://stackoverflow.com/questions/10398931/javascript-how-to-remove-text-from-a-string beantwortet. – RajeshM

Antwort

0

Methode 1: Verwenden .replace()

var original_string = "bears and cats and dogs"; 
 

 
var modified_string = original_string.replace('cats ', ''); 
 

 
console.log(modified_string);

Strings haben eine Methode replace genannt, die eine Vielzahl von Parametern, einschließlich regex akzeptiert , Strings und natürlich Modifikatoren (g, i, etc).

Also nur mit dem Ersetzen auf der Zeichenfolge zu ersetzen cats mit '' tun, was Sie suchen.


Methode 2: ein Array verwenden und filtern Sie heraus, was Sie wollen auf die Frage nicht

nach dem Bearbeiten eine andere, komplexere Art und Weise, dies zu tun wäre, um die Zeichenfolge in ein Array aufteilen und filtere das Wort cats aus. Dann verbinden Sie das Array wieder mit einem Leerzeichen zu einer Zeichenfolge.

var original_string = "bears and cats and dogs"; 
 
var modified_string = original_string 
 
    .split(/\s/) 
 
    .filter(function(word) { 
 
    return (word !== 'cats') 
 
    }) 
 
    .join(' '); 
 

 
console.log(modified_string);


Methode 3: Entfernen von Index der Teilkette bekommen, dann slice

Und natürlich, wenn Sie es in der Art und Weise nähern wollen es sieht aus wie Sie waren Über Indizes auf der Zeichenkette können Sie Folgendes tun:

var original_string = "bears and cats and dogs"; 
 
var wordToReplace = 'cats '; 
 

 
var index = original_string.indexOf(wordToReplace); 
 
var modified_string = ''; 
 

 
if (index > -1) { 
 
    modified_string = original_string.slice(0, index) + original_string.slice(index + wordToReplace.length); 
 
} 
 

 
console.log(modified_string);

+0

danke @KevBot, gibt es einen anderen Weg, es zu ersetzen? – mbigras

+0

@mbigras, ich habe noch zwei weitere Möglichkeiten hinzugefügt. – KevBot

Verwandte Themen