使用匹配的正则表达式字符,我如何才能获得大写字母?

时间:2012-06-29 00:06:16

标签: javascript

基本前提是我想找到一个跟随另一个的字符然后用它的大写等价物替换它。我正在寻找比indexOf和for循环更优雅的解决方案。我到目前为止:

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

给了我thisismystring,但我想要thisIsMyString。我能做些什么来将$1改成大写的等价物?

2 个答案:

答案 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();