Bem galeira, esta função faz um auto-preenchimento em uma determinada string.
Ex: tenho um campo que seria obrigatório ter 4 digitos, mas ele poderia receber valores com uma, duas, três ou quatro digitos, ae surgiu a ideia de fazer um preenchimento no campos caso o valor recebido fosse menor que 4 espaços, dei uma Googlezada e encotrei esta função que equivale a str_pad do PHP, fiz apenas uma alteração, pois quando inseria um valor númerico a função não reconhecia, a solução foi fazer com que os valores de entrada sejam transformados em uma string.
Você tem as seguintes opções:
STR_PAD_RIGHT, STR_PAD_LEFT ou STR_PAD_BOTH, caso não seja definido na chamada da função o parametro pad_type ele assume como default o valor ‘STR_PAD_RIGHT’.
Veja:
o valor de entrada para este exemplo será 8, a quantidade de espaço a ser preenchido será 4 e o valor adicionado é 0.
//Preenche a esquerda. document.write(str_pad(8, 4, 0, 'STR_PAD_LEFT')) //resultado: 0008
//Preenche nas duas extremidades. document.write(str_pad(8, 4, 0, 'STR_PAD_BOTH')) //resultado: 0080
//Preenche a direita. document.write(str_pad(8, 4, 0, 'STR_PAD_RIGHT')) //resultado: 8000
/**
* @credits http://kevin.vanzonneveld.net
* original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
*/
function str_pad( input, pad_length, pad_string, pad_type ) {
var input = this.String(input);
var half = '', pad_to_go;
function str_pad_repeater(s, len){
var collect = '', i;
while(collect.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;
}