2011-05-15 119 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()})