将破折号后面的字母大写并删除破折号

问题描述 投票:0回答:2

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

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

感谢您的帮助。

javascript css regex syntax uppercase
2个回答
21
投票

如果您在 jQuery 源 中搜索

camelCase
,您将找到此函数:

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

(除了其中的正则表达式和回调是单独定义的)。


10
投票

使用正则表达式

(-.)
替换所有内容,如下所示:

'margin-top-something'.replace(/(-.)/g, x=> x[1].toUpperCase())
© www.soinside.com 2019 - 2024. All rights reserved.