基本前提是我想找到一个跟随另一个的字符然后用它的大写等价物替换它。我正在寻找比indexOf
和for循环更优雅的解决方案。我到目前为止:
'this-is-my-string'.replace(/\-(\w)/,'$1')
给了我thisismystring
,但我想要thisIsMyString
。我能做些什么来将$1
改成大写的等价物?
答案 0 :(得分:3)
您可以使用给替换函数作为第二个参数,并使用它返回的任何内容:
'this-is-my-string'.replace(/\-(\w)/g, function(_, letter){
return letter.toUpperCase();
});
答案 1 :(得分:3)
我建议使用James Robert's 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();