FreeCodeCamp筆記之:Search and Repla

作者: delphuy | 来源:发表于2017-09-29 15:48 被阅读6次

    题目

    使用给定的参数对句子执行一次查找和替换,然后返回新句子。
    第一个参数是将要对其执行查找和替换的句子。
    第二个参数是将被替换掉的单词(替换前的单词)。
    第三个参数用于替换第二个参数(替换后的单词)。
    注意:替换时保持原单词的大小写。例如,如果你想用单词 "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个解法,经验证,也是可以的,高人无处不在啊。

    相关文章

      网友评论

        本文标题:FreeCodeCamp筆記之:Search and Repla

        本文链接:https://www.haomeiwen.com/subject/glviextx.html