Ir para o conteúdo

Capitalização De String Para Mootools


Criado por Josiel Rocha, Dez 07 2011 16:04

Não há respostas para este tópico
  • Por favor, faça o login para responder

#1 Josiel Rocha

Josiel Rocha
  • Josiel Rocha
  • Colaborador
  • 1 Revisões

Revisou 07 dezembro 2011 - 16:04

Precisei de um script para capitalizar strings, desenvolvi uma solução para Javascript puro, mas agora estou usando a Mootools, adaptei para Mootools, aproveitem o código e críticas (Construtivas) são sempre bem vindas

Muito fácil de usar

ex:


alert("ana cristina da silva santos".capitalize());
// retorna: Ana Cristina da Silva Santos

Demo: http://jsfiddle.net/q8eDW/5/

/**
 * Capitaliza corretamente nomes próprios, ex:
 *
 * transforma 'joao da silva' em 'Joao da Silva'
 *
 * @require Events, Options
 * @privide String.capitalizar
 */
(function($){
    Capitalize = new Class({
        Implements: [Options, Events],
        options: {
            minusculas: ['a', 'e', 'i', 'o', 'u', 'de', 'do', 'da', 'dos', 'das', 'um', 'uma', 'uns', 'umas'],
            maiusculas: ['ac', 'al', 'am', 'ap', 'ba', 'ce', 'df', 'es', 'go', 'ma', 'mg', 'ms', 'mt', 'pa', 'pb', 'pe', 'pi', 'pr', 'rj', 'rn', 'ro', 'rr', 'rs', 'sc', 'se', 'sp', 'to', 'pf', 'pj'],
            separadores: [" "]
        },
        initialize: function(string, options) {
            // Passa as opções para a classe
            this.setOptions(options);
            this.texto = this._capitalizar(string);
        },

			getTexto: function() {
				return this.texto;
			},

        _capitalizar: function(string) {
            [color="#696969"]// Novo texto[/color]
            var texto = '';
            string = string.toLowerCase();
            var maiusculas = this.options.maiusculas;
            var minusculas = this.options.minusculas;
            var separadores = this.options.separadores;
            separadores.each(function(separador, index){
                // Percorrendo as palavras

                var palavras = string.split(separador);

                palavras.each(function(palavra, indice){
                    if(maiusculas.contains(palavra)) {
                       texto += separador + palavra.toUpperCase();
                    } else if (minusculas.contains(palavra)) {
                       texto += separador + palavra.toLowerCase();
                    } else {
                        texto += separador + palavra.substring(0, 1).toUpperCase() + palavra.substring(1);
                    }

                    if(indice == palavras.length - 1 && index < separadores.length - 1) {
                        string = texto;
                        texto = '';
                    }
                });

            });
            return texto.substring(separadores.length);
        }
    });
})(document.id);
Exemplo de uso
/**
 * Implementando a classe Capitalize no objeto String para facilitar o uso
 *
 * @param object options [opcional]
 */
String.implement({
    capitalizar: function() {
        var options = arguments[0] || {};
		  var capitalize = new Capitalize(this, options);
		  return capitalize.getTexto();
    }
});

Esta revisão foi editado por Matias Rezende: 07 dezembro 2011 - 17:19
Adição do BBCode CODE





1 usuário(s) está(ão) lendo este código

1 membro(s), 0 visitante(s) e 0 membros anônimo(s)