584 Stimmen

Wie kann ich einen Wert mit führenden Nullen auffüllen?

Was ist der empfohlene Weg, um einen Wert in JavaScript mit Nullen zu füllen? Ich kann mir vorstellen, dass ich eine benutzerdefinierte Funktion zum Auffüllen von Nullen auf einen eingegebenen Wert bauen könnte, aber ich frage mich, ob es einen direkteren Weg gibt, dies zu tun?

Anmerkung: Mit "zerofilled" meine ich es im Sinne des Wortes in der Datenbank (wo eine 6-stellige zerofilled Darstellung der Zahl 5 "000005" wäre).

0voto

mtizziani Punkte 828

Ich habe etwas in ecmaScript6 (TypeScript) geschrieben und vielleicht kann es jemand verwenden:

class Helper {
    /**
     * adds leading 0 and returns string if value is not minSize long, 
     * else returns value as string
     *
     * @param {string|number} value
     * @param {number} minSize
     * @returns {string}
     */
    public static leadingNullString(value: string|number, minSize: number): string {
        if (typeof value == "number") {
            value = "" + value;
        }
        let outString: string = '';
        let counter: number = minSize - value.length;
        if (counter > 0) {
            for (let i = 0; i < counter; i++) {
                outString += '0';
            }
        }
        return (outString + value);
    }
}

Helper.leadingNullString(123, 2); gibt "123" zurück

Helper.leadingNullString(5, 2); gibt "05" zurück

Helper.leadingNullString(40,2); gibt "40" zurück

Die Umsetzung von ecmaScript4 (JavaScript) sieht so aus:

var Helper = (function () {
    function Helper() {
    }
    Helper.leadingNullString = function (value, minSize) {
        if (typeof value == "number") {
            value = "" + value;
        }
        var outString = '';
        var counter = minSize - value.length;
        if (counter > 0) {
            for (var i = 0; i < counter; i++) {
                outString += '0';
            }
        }
        return (outString + value);
    };
    return Helper;
}());

0voto

bugmagnet Punkte 7433

Noch später zur Party.

function zfill(num, len) {
  return(0 > num ? "-" : "") + (Math.pow(10, len) <= Math.abs(num) ? "0" + Math.abs(num) : Math.pow(10, len) + Math.abs(num)).toString().substr(1)
}

Damit werden Negative und Situationen behandelt, in denen die Zahl länger als die Feldbreite ist. Und Fließkommazahlen.

0voto

mendezcode Punkte 747
function numberPadding(n, p) {
  n = n.toString();
  var len = p - n.length;
  if (len > 0) {
    for (var i=0; i < len; i++) {
      n = '0' + n;
    }
  }
  return n;
}

0voto

ArkTekniK Punkte 196

Eine einfache Funktion, um dies zu tun:

function padStr(number, numDigits){
  return 
    (number < 0 ? '-':'') 
    + ((new Array(numDigits + 1).join("0"))
    + Math.abs(number)).slice(-numDigits);
}

0voto

Howar31 Punkte 36

Eine einfache kurze rekursive Funktion, um Ihren Vorschlag zu erreichen:

function padleft (YourNumber, OutputLength){
    if (YourNumber.length >= OutputLength) {
        return YourNumber;
    } else {
        return padleft("0" +YourNumber, OutputLength);
    }
}
  • IhreNummer ist die Eingangsnummer.
  • OutputLength ist die bevorzugte Länge der Ausgabennummer (mit 0 Auffüllungen links).

Diese Funktion fügt links 0 hinzu, wenn die Länge der eingegebenen Zahl kürzer ist als die gewünschte Länge der ausgegebenen Zahl.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X