164 votes

Convertir les tirets en cas de chameau (camelCase)

Avec regex (je suppose) ou une autre méthode, comment puis-je convertir des choses comme :

marker-image ou my-example-setting à markerImage ou myExampleSetting .

Je pensais simplement diviser par - puis convertir l'index de ce trait d'union +1 en majuscule. Mais il semble assez sale et espérait de l'aide avec les expressions régulières qui pourraient rendre le code plus propre.

Pas de jQuery...

300voto

rfw Points 3716

Essaye ça:

 var camelCased = myString.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });

L'expression régulière correspondra au -i dans marker-image et capturera uniquement le i . Ceci est ensuite mis en majuscule dans la fonction de rappel et remplacé.

52voto

C'est l'un des excellents utilitaires proposés par Lodash si vous êtes éclairé et que vous l'incluez dans votre projet.

 var str = 'my-hyphen-string';
str = _.camelCase(str);
// results in 'myHyphenString'

19voto

mck89 Points 8661

Vous pouvez obtenir le trait d'union et le caractère suivant et le remplacer par la version en majuscule du caractère :

 var str="marker-image-test";
str.replace(/-([a-z])/g, function (m, w) {
    return w.toUpperCase();
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X