Search and Replace(fcc)

1407 ワード

テーマはfreecodecampの上の練習問題からオンラインデバッグし、与えられたパラメータを使用して文を検索して置き換え、新しい文に戻ります.最初のパラメータは、検索と置換を実行する文です.2番目のパラメータは、置換された単語(置換前の単語)です.3番目のパラメータは、2番目のパラメータ(置換後の単語)を置換するために使用されます.注意:置換時に元の単語の大文字と小文字を保持します.たとえば、「Book」という単語を「dog」で置き換えたい場合は、「Dog」に置き換える必要があります.困ったことになったら、Read-Search-ASkを使って他の人とプログラミングしたり、自分のコードを書いたりしてみてください.これはあなたに役立つリソースです.Array.splice() String.replace() Array.join() String.prototype.replace()の構文:
str.replace(regexp|substr, newSubStr|function)

残りの問題は、元の単語の大文字と小文字をどのように置き換えるかです.これは単語の頭文字を指すべきです.
//   1
if(before[0] === before[0].toUpperCase()){
    // ...
}

//   2
var reg = /^[A-Z]/;
if(re.test(before.charAt(0))){
    // ...
}

ここで、単一文字にアクセスする場合、str[index]charAt(index)の違いは、範囲外のインデックス値の場合、str[index]undefinedを返し、charAt(index)は空の文字列を返します.IE 8の次のバージョンでは、str[index]は互換性がなく、undefinedを返します.
解法
//   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;
}