ループ1、
するvar A = 'こんにちは、私の名前\' sのハンMeimei、ソフトウェアエンジニア '; // forループ 機能タイトルケース(S){ VAR I、SS = s.toLowerCase()スプリット(/ \ sの+ /)。 用(; I <ss.length; iが0 = I ++){ SS [I] = SS [i]が.slice(0、1).toUpperCase()+ SS [i]は.slice(1)。 } リターンss.join(」「); } console.log(タイトルケース(a)参照)。
2、+のサイクルを置き換えます
// forループ+置き換えます 関数titleCase1(STR){ //配列と小文字に文字列& 。VAR convertToArray = str.toLowerCase()スプリット(」「); 以下のために(; I <convertToArray.length; VAR iが0 = I ++){ VARチャー= convertToArray [I] .charAt(0)。 //資本の配列の各の最初の文字に置き換える()メソッドを使用します convertToArray [I] = convertToArray [I] .replace(CHAR、機能交換(CHAR){ リターンchar.toUpperCase(); }); } convertToArray.join(」「)を返します。 } console.log(titleCase1(a)参照)。
1と2は非常に異なる表現ではありません
3、交換してください+定期的に
//正規+置き換えます 関数titleCase2(S){ 。)+)\ B / G、関数(ワード{|リターンs.toLowerCase()(/ \ B([ '\ W]置き換えます //戻りword.slice(0、1).toUpperCase()+ word.slice(1)。 戻りword.replace(word.charAt(0)、word.charAt(0).toUpperCase())。 }); } console.log(titleCase2(a)参照)。
アイデア:単語の配列への正の意志文字列、および大文字のプロセスで各単語と。ここでは、単純な文字、数字、アンダースコアだとアポストロフィは、単一ワードメンバーとして扱われます。
4、配列+マップ
//配列+マップ 関数titleCase3(S){ リターンs.toLowerCase()。スプリット(/ \ S + /)。マップ(関数(項目、インデックス){ (0、1).toUpperCase()+ item.slice(1)item.sliceを返します。 。}))」「(参加。 } console.log(titleCase3(a)参照)。
アイデアは:配列に空の文字列によると、各単語に対処するために大文字し、結果を新しい配列のすべての要素を処理し、その文字列にスプライス。
5、配列+を減らします
//配列を軽減します+ 関数titleCase4(S){ リターンs.toLowerCase()。スプリット(/ \ S + /)。減らす(関数(PREV、アイテム、アレイ、アレイ){ 戻りPREV +(prev.trim()&& '「)+ item.slice(0、1).toUpperCase()+ item.slice(1)。 }、 '')。 } console.log(titleCase4(a)参照)。
アイデアは:配列に空の文字列によると、各単語に対処するために大文字し、結果を新しい文字列にすべて一緒に処理します。
6、ES6文言
// ES6文言 関数titleCase5(STR){ リターンstr.toLowerCase()置き換える(/(| ^)[AZ] / G、(L)=> L.toUpperCase())。 } console.log(titleCase5(a)参照)。
アイデアは:各単語の最初の文字がプラスになります大文字と交換してください。