Camelize, CamelCase

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.

One Response to "Camelize, CamelCase"

  1. 28 mai 2009 Undolog.com "Muito curto trecho: slug PHP :

    [...] 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 [...]

Deixe um comentário

XHTML PERMIT TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CÓDIGO DE INSERÇÃO:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL