我正在进行编码挑战,希望我们创建一个查找和替换句子中的单词的函数。我像这样定义了reg表达式
//"before" is the parameter with the word to be replaced
var regRep = '/'+before+'/gi';
我正在使用它
//"str" is the sentence to search and prepAfter" is a variable with the replacement word.
var newStr = str.replace(regRep, prepAfter);
返回newStr
时,我会在没有任何修改的情况下获得原始str
。我经历了console.log()
我的每个变量和逻辑块,而replace()
方法是唯一不能正常工作的东西。这是整个功能。
function myReplace(str, before, after) {
var prepAfter = "";
var caseCheck = before.charAt(0);
var regRep = '/'+before+'/gi';
if(caseCheck === caseCheck.toUpperCase()){
var firstLetter = after.substr(0,1).toUpperCase();
var wordLength = after.length -1;
var remWord = after.substr(1,wordLength);
prepAfter = firstLetter.concat(remWord);
}
else{ prepAfter = after; }
var newStr = str.replace(regRep, prepAfter);
return newStr;
}
我错过了什么?
答案 0 :(得分:2)
var regRep = new RegExp(before, 'gi');
如果您将字符串传递给replace()
(正如您所做的那样),它将查找实际的字符串。
注意:如果before
在您的案例中只是一个单词,您可能甚至不需要正则表达式,只需将其传递给replace()
即可。取决于你是否需要检查之前和之后的空格。