Home > JavaScript | Rapidinhas > [Rapidinhas] – str_pad com JavaScript

[Rapidinhas] – str_pad com JavaScript

Para quem não sabe, o str_pad é uma função do PHP que preenche uma string para um certo tamanho com outra string. Mas eu precisava fazer isso no JavaScript e, depois de alguns minutos rodando a internet, encontrei uma função criada por Kevin van Zonneveld. Olhei, testei e por fim vi que essa função resolveria perfeitamente meu problema. Efetuei alguns ajustes para a minha necessidade, mas estou postando aqui o código em sua versão original.

function str_pad (input, pad_length, pad_string, pad_type) {
    // Returns input string padded on the left or right to specified length with pad_string
    //
    // version: 1009.2513
    // discuss at: http://phpjs.org/functions/str_pad
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // + namespaced by: Michael White (http://getsprink.com)
    // +      input by: Marco van Oort
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: str_pad('Kevin van Zonneveld', 30, '-=', 'STR_PAD_LEFT');
    // *     returns 1: '-=-=-=-=-=-Kevin van Zonneveld'
    // *     example 2: str_pad('Kevin van Zonneveld', 30, '-', 'STR_PAD_BOTH');
    // *     returns 2: '------Kevin van Zonneveld-----'
    var half = '', pad_to_go;

    var str_pad_repeater = function (s, len) {
        var collect = '', i;

        while (collect.length < len) {collect += s;}         collect = collect.substr(0,len);           return collect;     };       input += '';     pad_string = pad_string !== undefined ? pad_string : ' ';          if (pad_type != 'STR_PAD_LEFT' && pad_type != 'STR_PAD_RIGHT' && pad_type != 'STR_PAD_BOTH') { pad_type = 'STR_PAD_RIGHT'; }     if ((pad_to_go = pad_length - input.length) > 0) {
        if (pad_type == 'STR_PAD_LEFT') { input = str_pad_repeater(pad_string, pad_to_go) + input; }
        else if (pad_type == 'STR_PAD_RIGHT') { input = input + str_pad_repeater(pad_string, pad_to_go); }
        else if (pad_type == 'STR_PAD_BOTH') {
            half = str_pad_repeater(pad_string, Math.ceil(pad_to_go/2));
            input = half + input + half;
            input = input.substr(0, pad_length);
        }
    }

    return input;
}

Espero que ajude!
Abraços!

[Fonte: PHPjs.org]

POSTED ON 13/01/2011, , , , , , , , , ,

Leave a Reply

Trackbacks:0

Listed below are links to weblogs that reference
[Rapidinhas] – str_pad com JavaScript from Fernando Valente
TOPO