Прописная буква после тире и удаление тире - PullRequest
5 голосов
/ 15 мая 2011

Если вы не догадались по названию, я пытаюсь преобразовать синтаксис свойства CSS в синтаксис JS с помощью JS.Это означает, что я хочу взять вход 'margin-top' и преобразовать его в 'marginTop'.Я знаю, что это можно легко сделать с помощью нескольких строк и функции замены, но мне было интересно, будет ли регулярное выражение иметь более простое и компактное решение.

Итак, мой вопрос: какое регулярное выражение я бы использовалзаменить - \ w без тире и первой буквы слова в верхнем регистре.Если это окажется невозможным, что будет самым минималистичным решением с функцией замены?

Спасибо за любую помощь.

Ответы [ 2 ]

11 голосов
/ 15 мая 2011

Если вы ищете источник jQuery для camelCase, вы найдете эту функцию:

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

(за исключением того, что там, регулярное выражение и обратный вызов определяются отдельно).

5 голосов
/ 15 мая 2011
'margin-top-something'.replace(/(-.)/g,function(x){return x[1].toUpperCase()})
...