2011-05-15 121 views
4

如果你还没有从标题中猜出,我试图用JS将CSS属性语法转换为JS语法。这意味着我想要输入'margin-top'并将其转换为'marginTop'。我知道这可以用几行和替换函数轻松完成,但我想知道正则表达式是否会有一个更简单,更紧凑的解决方案。用破折号去除破折号后的大写字母

所以,我的问题是我用什么正则表达式来替换 - \ w没有短划线和单词uppercased的第一个字母。如果这种情况不可能发生,替换功能最简约的解决方案是什么?

感谢您的任何帮助。

回答

8

如果你搜索jQuery sourcecamelCase,你会发现这个功能:

function camelCase (string) { 
    return string.replace(/-([a-z])/ig, function(all, letter) { 
     return letter.toUpperCase(); 
    }); 
} 

(除了在那里,正则表达式和回拨分别定义)。

5
'margin-top-something'.replace(/(-.)/g,function(x){return x[1].toUpperCase()})