Como se ve en el puesto de Variedades de la codificación y la codificación de los enfoques que un desarrollador pueda tener para resolver un problema son múltiples y diversas para el mismo lenguaje de programación utilizado. Así es como algunos de los frameworks de JavaScript más populares han resuelto una simple función de CamelCase :
Prototype.js
Prototype.js , versión 1.6.0.3, de forma explícita se propone un método camelize() para hacer el CamelCase en una cadena. El enfoque del autor es muy sencilla y el código es auto-explicativo. En este caso no se hizo ningún uso de expresiones regulares!
1 2 3 4 5 6 7 8 9 10 11 12 13 | ( ) { camelize: function () { this . split ( '-' ) , len = parts. length ; . partes var = esta división ('-'), len = partes de longitud;. len == 1 ) return parts [ 0 ] ; if (len == 1) piezas de retorno [0]; this . charAt ( 0 ) == '-' camelized var = esta charAt (0). == '-' 0 ] . charAt ( 0 ) . toUpperCase ( ) + parts [ 0 ] . substring ( 1 ) ? Partes [0]. CharAt (0). ToUpperCase () + partes [0]. Substring (1) 0 ] ; : Las partes [0]; var i = 1 ; i < len ; i ++ ) for (var i = 1, i <len; i + +) i ] . charAt ( 0 ) . toUpperCase ( ) + parts [ i ] . substring ( 1 ) ; camelized + = partes [i] charAt (0) toUpperCase () + partes [i] substring (1)...; retorno camelized; } |
Echa un vistazo a esta interesante discusión .
mootools
La biblioteca mootools , versión 1.2, también se propone un método camelCase() . En este caso la función es considerablemente más compacto que el propuesto por prototype.js, precisamente gracias a la utilización de expresiones regulares.
1 2 3 4 5 | ( ) { camelCase: function () { ( /-\D/g , function ( match ) { devolver este replace (/ -. \ D / g, la función (partido) { ( 1 ) . toUpperCase ( ) ; volver coincidir con charAt (1) toUpperCase ()..; }); } |
jQuery
jQuery , versión 1.2.6, no se propone un método explícito. Sin embargo, mirando en el código, he encontrado esto:
1 | name . replace ( /\-(\w)/g , function ( all , letter ) { return letter. toUpperCase ( ) ; } ) ; . var name = camelCase replace (/ \ - (\ w) / g, multifunción (todo escrito,) {vuelta de correo toUpperCase ();.}); |
Por otra parte, como un plugin, jQuery ofrece un prototipo de extensiones de cadenas que se suma, en realidad, una función camelize() :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | / ** * Volver a la cadena camelized, la eliminación de todos los guiones bajos y guiones * Sustitución de la próxima y con ella la representación de caracteres en mayúscula. * * @ Ejemplo "font-weight". Camelize () * @ Resultado "fontWeight" * * @ Ejemplo "border_width_bottom". Camelize () * @ Result "borderWidthBottom" * * @ Ejemplo "border_width de fondo". Camelize () * @ Result "borderWidthBottom" * * Nombre @ camelize * @ El tipo de serie * @ Gato JavaScript / Cadena * / , function ( ) { add ("camelize", function () { ( /[-_]([az])/ig , function ( z , b ) { return b. toUpperCase ( ) ; } ) ; devolver este replace (/ [-_] ([az]) / ig, (z, b) {return b toUpperCase ();.}).; }); |
Esto, en particular, tiene en cuenta el carácter underscore (_) , lo que les hace más completo.










[...] En "esto-y-un-post". La transformación en slug es similar a la de camelize o CamelCase, visto aquí. Esta es una posible implementación en PHP: texto [...]