我正在编写一个程序,它需要三个参数,例如,句子,wordtoreplace,toReplaceWith。JavaScript字符串替换不起作用
程序应该返回与wordtoreplace的句子字符串应替换为toReplaceWith。如果wordtoreplace是一个大写的词,那么被替换的世界也应该被大写。我尝试了很多次,但我的代码不起作用。请帮助。
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'不需要三个参数。你需要用括号调用'toUpperCase()'。初始化后,您不会使用* words *或* indexOfWord *。你为什么拥有它们?但是当你的函数的调用者可以容易地提供大写字母时,应用大小写似乎有点多余?它使该功能非用户友好。 – trincot