6

如果你还没有从标题中猜到,我正在尝试使用 JS 将 CSS 属性语法转换为 JS 语法。这意味着我想获取输入“margin-top”并将其转换为“marginTop”。我知道这可以通过几行和替换功能轻松完成,但我想知道正则表达式是否会有更简单、更紧凑的解决方案。

所以,我的问题是我将使用什么正则表达式来替换 -\w 没有破折号并且单词的第一个字母大写。如果这碰巧是不可能的,那么使用替换功能的最简约的解决方案是什么?

谢谢你的帮助。

4

2 回答 2

17

如果你搜索jQuery 源代码camelCase你会发现这个函数:

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

(除了在那里,正则表达式和回调是单独定义的)。

于 2011-05-15T15:49:01.443 回答
7
'margin-top-something'.replace(/(-.)/g,function(x){return x[1].toUpperCase()})
于 2011-05-15T15:46:55.727 回答