0

私が欲しいものは?

文字列内のすべての単語を大文字にするオブジェクト プロパティを作成したいのですが、オプションでアンダースコアをスペースに置き換えたり、文字列を最初に小文字にしたりします。オプションを2つのパラメータで設定したい:

最初のパラメーターは true ですか?

次に、すべてのアンダースコアを空白に置き換えます。

2 番目のパラメーターは true ですか?

次に、最初に完全な文字列を小文字にします。

私はこれまでに何をしていますか?

最初にアンダースコアをスペースに置き換えてから、すべての単語を大文字にします。

String.prototype.capitalize = function(underscore){
return (underscore ? this.replace(/\_/g, " ") : this).replace(/(?:^|\s)\S/g, function(a) { return a.toUpperCase(); });
}

var strUnderscoreFalse = "javaSCrIPT replace_First_underderscore with whitespace_false";

//replace underscore first = false
console.log(strUnderscoreFalse.capitalize());

var strUnderscoreTrue = "javaSCrIPT replace_First_underderscore with whitespace_true";

//replace underscore first = true
console.log(strUnderscoreTrue.capitalize(true));

フィドル

最初に文字列を小文字にしてから、すべての単語を大文字にします:

String.prototype.capitalize = function(lower){
return (lower ? this.toLowerCase() : this).replace(/(?:^|\s)\S/g, function(a) { return a.toUpperCase(); });
}

var strLcaseFalse = "javaSCrIPT lowercase First false";

//lowercase first = false
console.log(strLcaseFalse.capitalize());

var strLcaseTrue = "javaSCrIPT lowercase First true";

//lowercase first = true
console.log(strLcaseTrue.capitalize(true));

フィドル

私の質問は何ですか?

  • この条件通知を使用してオブジェクト プロパティを作成しようとするのはこれが初めてです。この 2 つのオプションを、2 つのパラメーターを設定するだけでよいオブジェクト プロパティ関数に結合するにはどうすればよいですか?

例えば:

//replace underscore first = true and lowercase first = true
console.log(str.capitalize(true , true));

//replace underscore first = false and lowercase first = true
console.log(str.capitalize(false , true));
  • 条件を「?」のような構文表記で書くのは一体何という名前なのでしょうか。と":" ?
4

0 に答える 0