私は3つのパラメータ、例えば、文章、語り口、toReplaceWithを取るプログラムを書いています。JavaScript文字列置換が機能していません
プログラムは、wordtoreplaceでの文ストリングをtoReplaceWithに置き換える必要があります。また、ワードプレースが大文字の単語であれば、置き換えられた世界も大文字にする必要があります。私は何度も試しましたが、私のコードは動作しません。助けてください。
function myReplace(str, before, after) {
var words = str.split(" ");
var indexOfWord = words.indexOf(before);
if (before.charAt(0) === before.charAt(0).toUpperCase) {
after = capitalize(after);
}
str = str.replace(new RegExp(before), after);
function capitalize(word) {
return word.charAt(0).toUpperCase() + word.slice(1);
}
return str.replace(new RegExp(after, 'i', 'g'), after);;
}
myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");
なぜ文字列で単語を分割しますか? 'RegExp'は3つの引数をとらないことに注意してください。あなたはカッコで 'toUpperCase()'を呼び出す必要があります。 * words *や* indexOfWord *は、一度初期化されると使用しません。なぜあなたはそれらを持っていますか?しかし、あなたの関数の呼び出し元が大文字を簡単に提供できるようになったときに大文字を適用するのは少し冗長に思えますか?それは機能をユーザーフレンドリーにします。 – trincot