Como visto no post Variedade de codificação e de codificação abordagens que um desenvolvedor pode ter que resolver um problema são múltiplas e diversas para a mesma linguagem de programação utilizada. Veja como alguns dos mais populares frameworks JavaScript ter resolvido uma função simples de CamelCase :
Prototype.js
Prototype.js , versão 1.6.0.3, explicitamente propõe um método camelize() para fazer o CamelCase em uma corda. Abordagem do autor é bastante simples eo código é auto-explicativo. Neste caso, não foi feito qualquer uso de expressões regulares!
1 2 3 4 5 6 7 8 9 10 11 12 13 | ( ) { camelize: function () { this . split ( '-' ) , len = parts. length ; var partes = split esta ('-'), len = partes comprimento..; len == 1 ) return parts [ 0 ] ; if (len == 1) Peças retorno [0]; this . charAt ( 0 ) == '-' camelized var = esta charAt (0) ==. '-' 0 ] . charAt ( 0 ) . toUpperCase ( ) + parts [ 0 ] . substring ( 1 ) ? Parts [0]. CharAt (0). ToUpperCase () + partes [0] Substring (1). 0 ] ; : 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 () + peças [i] substring (1)...; retorno camelized; } |
Dê uma olhada nesta discussão interessante .
mootools
A biblioteca mootools , versão 1.2, também propõe um método camelCase() . Neste caso, a função é muito mais compacto do que o proposto pela prototype.js, graças ao uso de expressões regulares.
1 2 3 4 5 | ( ) { camelCase: function () { ( /-\D/g , function ( match ) { envie este replace (/ -. \ D / g, função (match) { ( 1 ) . toUpperCase ( ) ; retorno coincidir com charAt (1) toUpperCase ()..; }); } |
jQuery
jQuery , versão 1.2.6, não propõe um método explícito. No entanto, olhando para o código, eu encontrei este:
1 | name . replace ( /\-(\w)/g , function ( all , letter ) { return letter. toUpperCase ( ) ; } ) ; var name = camelCase replace (/ \ -. carta de retorno (\ w) / g, função (todos, letra) {toUpperCase ();});. |
Além disso, como um plugin, jQuery oferece uma extensões Cordas protótipo que acrescenta, de fato, uma função camelize() :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | / ** * Retorna a String camelized, removendo todos os sublinhados e os traços * Substituir o próximo e com a sua representação de caracteres maiúsculos. * * @ Exemplo "font-weight". Camelize () * Resultado @ "fontWeight" * * @ Exemplo "border_width_bottom". Camelize () * @ Result "borderWidthBottom" * * @ Exemplo "border_width fundo". Camelize () * @ Result "borderWidthBottom" * * Nome @ camelize * @ String Tipo * @ Cat JavaScript / String * / , function ( ) { add ("camelize", function () { ( /[-_]([az])/ig , function ( z , b ) { return b. toUpperCase ( ) ; } ) ; devolver este. substitua (/[-_]([ az]) / ig, function (z, b) {return b toUpperCase ();}); }); |
Este, em particular, leva em conta o carácter underscore (_) , o que os torna mais completa.










[...] Em "this-e-um-post". A transformação é semelhante ao da lesma ou CamelCase camelize, visto aqui. Aqui está uma possível implementação em PHP: PLAIN TEXT [...]