2

基本的な前提は、別の文字に続く文字を見つけて、それを対応する大文字に置き換えたいということです。indexOffor ループよりもエレガントなソリューションを探しています。私はこれまでのところ持っています:

'this-is-my-string'.replace(/\-(\w)/,'$1')

それは私に与えますthisismystringが、私は欲しいですthisIsMyString$1同等の大文字に変更するためにできることはありますか?

4

2 に答える 2

3

関数を 2 番目の引数として指定すると、それが返すものは何でも使用されます。

'this-is-my-string'.replace(/\-(\w)/g, function(_, letter){
    return letter.toUpperCase();
});
于 2012-06-29T00:11:36.763 に答える
3

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();
于 2012-06-29T00:12:32.797 に答える