LoginSignup
2
1

More than 5 years have passed since last update.

js 文章のタイトルケース変換

Last updated at Posted at 2016-12-19

お題

文章をタイトルケース変換する。
*Title Case 頭文字だけが大文字の単語

script.js
function titleCase(str) {
 //write your code.
}
titleCase("i'm a little tea pot");

出力結果 例

script.js
("sHoRt AnD sToUt") // "Short And Stout"
("I'm a little tea pot") // "I'm A Little Tea Pot"
("HERE IS MY HANDLE HERE IS MY SPOUT") // "Here Is My Handle Here Is My Spout"

主に使った関数

charAt()
substring()
join()

最初に試したコード

script.js
function titleCase(str) {
  var t = str.split(' ');
  var a =[];
  for(var i= 0; i < t.length;i++){
  a.push(t[i].charAt(0).toUpperCase() + t[i].substring(1).toLowerCase());
  } 
    return a.join(" "); 
}
titleCase("i'm a little tea pot");

考え方

・split(' ')で文章を単語に切り分けて変数tに入れる。
・charAt(0).toUpperCase()で単語の一文字目を大文字にして用意した配列aにpushする。
・substring(1).toLowerCase()で単語の二文字目から残り部分を小文字にして配列aにpushする。
・for文 i で文章の単語数だけ処理を繰り返す。
最後に配列aの単語をjoin(' ')で文章にする。

mapを使ったコード

script.js
function titleCase(str) {
  var convertToArray = str.toLowerCase().split(" ");
  var result = convertToArray.map(function(val){
      return val.replace(val.charAt(0), val.charAt(0).toUpperCase());
  });
  return result.join(" ");
}

titleCase("I'm a little tea pot");

正規表現を使ったコード

script.js
function titleCase(str) {
  return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
}

他にもコードが浮かんだ方、コメントお待ちしてます。

2
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1