【FCC】freeCodeCamp:Where art thou 替换字符串

使用给定的参数对句子执行一次查找和替换,然后返回新句子。

第一个参数是将要对其执行查找和替换的句子。

第二个参数是将被替换掉的单词(替换前的单词)。

第三个参数用于替换第二个参数(替换后的单词)。

注意:替换时保持原单词的大小写。例如,如果你想用单词 “dog” 替换单词 “Book” ,你应该替换成 “Dog”。

String.prototype.replace)的语法:

str.replaceregexp|substr, newSubStr|function)

余下的问题在于如何替换时保持原单词的大小写。这个指的应当是单词的首字母

// 解法1
ifbefore[0] === before[0].toUpperCase)){
    // ...
}

// 解法2
var reg = /^[A-Z]/;
ifre.testbefore.charAt0))){
    // ...
}

这里顺便说一下访问单个字符时, str[index]charAtindex) 的区别:
对于 超出范围的索引值 , str[index] 将返回 undefined ,而 charAtindex) 将返回一个空字符串。
对于 IE8以下版本 , str[index] 不被兼容,将返回 undefined

解法

// 解法1
function myReplacestr,before,after){
  ifbefore[0] === before[0].toUpperCase)){
    after = after[0].toUpperCase) + after.slice1);
  }
  str = str.replacebefore,after);
  return str;
}

// 解法2
function myReplacestr,before,after){
  var reg = /^[A-Z]/;
  ifreg.textbefore.charAt0))){
    after = after.charAt0).toUpperCase) + after.slice1);
  }
  str = str.replacebefore,after);
  return str;
}


//解法3
function myReplacestr, before, after) {
	ifbefore[0]>='A' && before[0]<='Z'){
		after = after[0].toUpperCase)+after.substring1);
				}
	str=str.replacebefore,after);
	return str;
}

作者:不要变成发抖的小喵喵喵喵喵喵
链接:https://www.jianshu.com/p/4d72dfe478b5

 

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注