Padder une string javascript simplement

Quand j’ai cherché la première fois, comment “padder’ une string en language javascript, j’ai trouvé des recettes plus ou moins compliquées. Certaines utilisaient des arrays, d’autres des boucles “for” et même des méthodes encore plus complexe … à mon avis ces méthodes sont toutes trop compliquées.

J’ai enfin trouvé une façon fort simple de le faire, alors voici comment procéder …

Pour padder une string à la gauche, prenons comme exemple de formater

le nombre 143 de manière à obtenir un nombre à 7 chiffres paddé avec des 0 -> 0000143

String('0000000' + 143).slice(-7)

Pour padder une string à la droite,

le nombre 143 de manière à obtenir 1430000

String(143 + '0000000').slice(0,7)

Évidemment, nous pouvons faire une fonction simple

function pad(str, length, needle, direction){



var padding = new Array(length + 1).join(needle);



if (direction === 'left'){



return String(padding + str).slice(-length);



}else if (direction === 'right'){



return String(str + padding ).slice(0, length);



}

}

Vous pouvez également «étendre » l’objet String de javascript afin de pouvoir padder n’importe quelle string en utilisant une syntaxe telle que ‘143’.pad(10,‘0’, ‘right’) pour produire la nouvelle string “1430000000”.

Pour étendre, l’objet String, il suffit de retirer la variable str des paramètres de la function et de remplacer la variable “str” dans le corps de la function par la variable ‘this’ afin d’obtenir la fonction suivante :

function pad(length, needle, direction){



var padding = new Array(length + 1).join(needle);



if (direction === 'left'){



return String(padding + this).slice(-length);



}else if (direction === 'right'){



return String(this + padding ).slice(0, length);



}

}

Par le suite, étendre l’objet String de javascript

String.prototype.pad = pad;

Vous pourrez ainsi padder toutes vos string en employant la synthaxe maString.pad()