Mnah... Ich habe keine "ultimative" Antwort auf dieses Problem gesehen und wenn Sie vor der gleichen Herausforderung stehen, muss ich Ihnen etwas Zeit sparen, indem ich sage, dass es leider keine eingebaute Funktion dafür in JavaScript gibt; aber es gibt diese geniale Funktion in PHP, die eine großartige Arbeit auf Padding Strings sowie Zahlen mit einzelnen Zeichen oder beliebige Strings so nach einiger Zeit der Schlag meinen Kopf für nicht das richtige Werkzeug auf JS [meist für zerofillin 'Zahlen und in der Regel für Trimmen Strings, um eine feste Länge passen] und übermäßige Codierung Arbeit beschloss ich, meine eigene Funktion, die das gleiche tut zu schreiben ["fast das gleiche", lesen Sie weiter für Details], dass die Traum-PHP-Funktion, sondern in komfortablen Client-Side JavaScript.
function str_pad(input,pad_length,pad_string,pad_type){
var input=input.toString();
var output="";
if((input.length>pad_length)&&(pad_type=='STR_PAD_RIGHT')){var output=input.slice(0,pad_length);}
else if((input.length>pad_length)&&(pad_type=='STR_PAD_LEFT')){var output=input.slice(input.length-pad_length,input.length);}
else if((input.length<pad_length)&&(pad_type=='STR_PAD_RIGHT')){
var caracteresNecesarios=pad_length-input.length;
var rellenoEnteros=Math.floor(caracteresNecesarios/pad_string.length);
var rellenoParte=caracteresNecesarios%pad_string.length;
var output=input;
for(var i=0;i<rellenoEnteros;i++){var output=output+pad_string;};
var output=output+pad_string.slice(0,rellenoParte);
}
else if((input.length<pad_length)&&(pad_type=='STR_PAD_LEFT')){
var caracteresNecesarios=pad_length-input.length;
var rellenoEnteros=Math.floor(caracteresNecesarios/pad_string.length);
var rellenoParte=caracteresNecesarios%pad_string.length;
var output="";
for(var i=0;i<rellenoEnteros;i++){var output=output+pad_string;};
var output=output+pad_string.slice(0,rellenoParte);
var output=output+input;
}
else if(input.length==pad_length){var output=input;};
return output;
};
Das einzige, was meine Funktion nicht tut, ist die STR_PAD_BOTH
Verhalten, das ich mit etwas Zeit und einer bequemeren Tastatur hinzufügen könnte. Rufen Sie die Funktion auf und testen Sie sie; ich wette, Sie werden sie lieben, wenn es Sie nicht stört, dass der innere Code ein oder zwei Wörter auf Spanisch verwendet... keine große Sache, denke ich. Ich habe keine Kommentare hinzugefügt, um meinen Code mit einem "Wasserzeichen" zu versehen, so dass Sie ihn nahtlos in Ihrer Arbeit verwenden können, und ich habe den Code auch nicht komprimiert, um die Lesbarkeit zu verbessern. Verwenden Sie ihn und testen Sie ihn so und den Code verbreiten :
alert("str_pad('murcielago',20,'123','STR_PAD_RIGHT')="+str_pad('murcielago',20,'123','STR_PAD_RIGHT')+'.');