基本的な前提は、別の文字に続く文字を見つけて、それを対応する大文字に置き換えたいということです。indexOf
for ループよりもエレガントなソリューションを探しています。私はこれまでのところ持っています:
'this-is-my-string'.replace(/\-(\w)/,'$1')
それは私に与えますthisismystring
が、私は欲しいですthisIsMyString
。$1
同等の大文字に変更するためにできることはありますか?
基本的な前提は、別の文字に続く文字を見つけて、それを対応する大文字に置き換えたいということです。indexOf
for ループよりもエレガントなソリューションを探しています。私はこれまでのところ持っています:
'this-is-my-string'.replace(/\-(\w)/,'$1')
それは私に与えますthisismystring
が、私は欲しいですthisIsMyString
。$1
同等の大文字に変更するためにできることはありますか?
関数を 2 番目の引数として指定すると、それが返すものは何でも使用されます。
'this-is-my-string'.replace(/\-(\w)/g, function(_, letter){
return letter.toUpperCase();
});
James Robert の toCamel string methodを使用することをお勧めします。
String.prototype.toCamel = function(){
return this.replace(/(\-[a-z])/g, function($1){return $1.toUpperCase().replace('-','');});
};
次に、次のように呼び出します。
'this-is-my-string'.replace(/\-(\w)/,'$1').toCamel();