Come già visto nel post Varietà di coding e di coding gli approcci che uno sviluppatore può avere alla risoluzione di un problema sono diversi e molteplici a parità del linguaggio di programmazione usato. Ecco come alcuni dei più noti framework Javascript hanno risolto una semplice funzione di CamelCase:
Prototype.js
Prototype.js, nella versione 1.6.0.3, propone esplicitamente un metodo camelize() per effettuare il camelcase su una stringa. L’approccio dell’autore è abbastanza semplice e il codice risulta auto-esplicativo. In questo caso non è stato fatto nessun uso delle Regular Expression!
1 2 3 4 5 6 7 8 9 10 11 12 13 | camelize: function() { var parts = this.split('-'), len = parts.length; if (len == 1) return parts[0]; var camelized = this.charAt(0) == '-' ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) : parts[0]; for (var i = 1; i < len; i++) camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); return camelized; } |
Date uno sguardo anche a questa interessante discussione.
mootools
La libreria mootools, nella versione 1.2, propone anch’essa un metodo camelCase(). In questo caso la funzione risulta notevolmente più compatta rispetto a quella proposta da prototype.js, proprio grazie all’uso delle Regular Expression.
1 2 3 4 5 | camelCase: function(){ return this.replace(/-\D/g, function(match){ return match.charAt(1).toUpperCase(); }); } |
jQuery
jQuery, nella versione 1.2.6, non propone un metodo esplicito. Tuttavia, sbirciando nel codice, ho trovato questo:
1 | var camelCase = name.replace(/\-(\w)/g, function(all, letter) { return letter.toUpperCase(); }); |
Inoltre, come plugin, jQuery propone una String prototype extensions dove aggiunge, appunto, una funzione camelize():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /** * Return a camelized String, removing all underscores and dashes * and replacing the next character with it's uppercase representation. * * @example "font-weight".camelize() * @result "fontWeight" * * @example "border_width_bottom".camelize() * @result "borderWidthBottom" * * @example "border_width-bottom".camelize() * @result "borderWidthBottom" * * @name camelize * @type String * @cat Javascript/String */ add("camelize", function() { return this.replace( /[-_]([a-z])/ig, function(z,b){ return b.toUpperCase();} ); }); |
Questa, in particolare, prende in considerazione anche il carattere underscore (_), risultando quindi più completa.








11
[...] in “questo-e-un-post”. La trasformazione in slug è simile a quella del camelize o camelcase, vista qui. Ecco una possibile implementazione in PHP: PLAIN TEXT [...]