前端學習筆記我们就爱程序媛程序员

FreeCodeCamp筆記之:Search and Repla

2017-09-29  本文已影响6人  delphuy

题目

使用给定的参数对句子执行一次查找和替换,然后返回新句子。
第一个参数是将要对其执行查找和替换的句子。
第二个参数是将被替换掉的单词(替换前的单词)。
第三个参数用于替换第二个参数(替换后的单词)。
注意:替换时保持原单词的大小写。例如,如果你想用单词 "dog" 替换单词 "Book" ,你应该替换成 "Dog"。
如果你被难住了,记得使用 Read-Search-Ask尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
Array.splice()
String.replace()
Array.join()

function myReplace(str, before, after) {
    return str;
}
myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");

思路

解答

function myReplace(str, before, after) {
    if(before.charAt(0)=== before.charAt(0).toUpperCase()){   // 如果带替换的字符首字母是大写
      after = after.replace(after.charAt(0),after.charAt(0).toUpperCase());//将after的首字母变为大写
      str = str.replace(before,after);
    }else{
      after = after.replace(after.charAt(0),after.charAt(0).toLowerCase());//将after的首字母变为小写
      str = str.replace(before,after);
    }
    return str;
}
myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");

另外,还看到一个更简洁的写法:

// 解法1
function myReplace(str,before,after){
  if(before[0] === before[0].toUpperCase()){
    after = after[0].toUpperCase() + after.slice(1);
  }
  str = str.replace(before,after);
  return str;
}

// 解法2
function myReplace(str,before,after){
  var reg = /^[A-Z]/;
  if(reg.text(before.charAt(0))){
    after = after.charAt(0).toUpperCase() + after.slice(1);
  }
  str = str.replace(before,after);
  return str;
}

作者:不要变成发抖的小喵喵喵喵喵喵
链接:http://www.jianshu.com/p/4d72dfe478b5
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这2个解法,经验证,也是可以的,高人无处不在啊。

上一篇下一篇

猜你喜欢

热点阅读