2016-09-01 4 views
0

Ich möchte ein Wort in einer Zeichenfolge durch ein anderes Wort ersetzen, aber Code funktioniert nicht.Ersetzen von Wort in einer Zeichenfolge

HINWEIS: Bewahren Sie den Fall des ursprünglichen Wortes auf, wenn Sie es ersetzen. Wenn Sie beispielsweise das Wort "Buch" durch das Wort "Hund" ersetzen möchten, sollte es als "Hund" ersetzt werden.

Was ist falsch im Code?

function replace(str, before, after) { 

    // Find index where before is on string 
    var index = str.indexOf(before); 
    var dogru = before[0] === before[0].toUpperCase(); 
    var yanlıs = after[0] === after[0].toUpperCase(); 

    // Check to see if the first letter is uppercase or not 
    if (dogru !== yanlıs) { 
     if(dogru) 
      after = after.charAt(0).toUpperCase() + after.slice(1); 
     else 
      after = after.charAt(0).toLowerCase() + after.slice(1); 
    } 

    // Now replace the original str with the edited one. 
    var str1 = str.split(' '); 

    str1.splice(str1.indexOf(before),1, after); 

    return str1.join(' '); 
} 

myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped"); 
+0

'„Eine schnelle braune Fuchs sprang über den faulen Hund“.replace (‚sprang‘,‚sprang‘)' – choz

+0

Was ist all die Groß-/Kleinmaterial für? Gibt es eine zusätzliche Anforderung im Zusammenhang mit den Wörtern? – Barmar

+1

Sie haben die Funktion 'replace' und nicht' myReplace' benannt. Sie benötigen auch eine Variable, um das Ergebnis zu speichern. [Ansonsten funktioniert es gut] (https://jsfiddle.net/dwb9zetL/). –

Antwort

2

Sie sind Dinge, die mein Freund zu verkomplizieren. Verwenden Sie einfach ersetzen() http://www.w3schools.com/jsref/jsref_replace.asp

+1

Ich empfehle nicht, w3schools als Verweis zu verwenden, MDN ist besser und häufiger verwendet. –

+0

:). Ja, deswegen stelle ich diese einfache Frage. Ich kann nicht finden, wo ich selbst Fehler mache. Ich kenne Lösung und andere Methoden. Ich frage mich, was falsch ist und wie ich das beheben kann. – yuga

+0

@yuga Sie haben gerade den falschen Funktionsnamen verwendet (und das Ergebnis nicht gespeichert), der Algorithmus selbst ist korrekt für die gewünschte Ausgabe. Diese Antwort beantwortet die Frage nicht wirklich, sollte ein Kommentar sein. –

0

großen Werke alle, aber die Tatsache, Ihr Aufruf der Funktion myReplace wenn Ihre definierten Funktionsnamen der replace

0

Sie ist verwenden replace() -Methode wie folgt:

„Eine schnelle brauner Fuchs sprang über den faulen Hund ".replace (" sprang "," sprang ");

erklärt here

Verwandte Themen