2566 Stimmen

Wie kann ich das letzte Zeichen in einer Zeichenkette mit Javascript abschneiden/ausschneiden/abschneiden?

Ich habe eine Schnur, 12345.00 und ich möchte, dass sie zurückkehrt. 12345.0 .

Ich habe mir angesehen trim aber es sieht so aus, als würde es nur Leerzeichen und slice Ich wüsste nicht, wie das funktionieren sollte. Irgendwelche Vorschläge?

10 Stimmen

Wissen Sie, wie das Suffix lautet, oder wollen Sie das letzte Wort anhand der Unterstriche trennen und entfernen?

42 Stimmen

Ist Ihnen das Runden wichtig? 12345,46 = 12345,5 oder 12345,4?

7voto

uofc Punkte 520
debris = string.split("_") //explode string into array of strings indexed by "_"

debris.pop(); //pop last element off the array (which you didn't want)

result = debris.join("_"); //fuse the remainng items together like the sun

5voto

PatrikAkerstrand Punkte 44499

Wenn Sie eine allgemeine Rundung von Floats vornehmen möchten, anstatt nur das letzte Zeichen abzuschneiden:

var float1 = 12345.00,
    float2 = 12345.4567,
    float3 = 12345.982;

var MoreMath = {
    /**
     * Rounds a value to the specified number of decimals
     * @param float value The value to be rounded
     * @param int nrDecimals The number of decimals to round value to
     * @return float value rounded to nrDecimals decimals
     */
    round: function (value, nrDecimals) {
        var x = nrDecimals > 0 ? 10 * parseInt(nrDecimals, 10) : 1;
        return Math.round(value * x) / x;
    }
}

MoreMath.round(float1, 1) => 12345.0
MoreMath.round(float2, 1) => 12345.5
MoreMath.round(float3, 1) => 12346.0

EDIT : Wie Paolo feststellt, scheint es dafür eine eingebaute Funktion zu geben. Diese Lösung ist natürlich viel sauberer als meine. Verwenden Sie parseFloat gefolgt von toFixed

3voto

Matthew Flaschen Punkte 266507
if(str.substring(str.length - 4) == "_bar")
{
    str = str.substring(0, str.length - 4);
}

1voto

bestafubana Punkte 92

In Fällen, in denen Sie etwas entfernen möchten, das sich nahe am Ende einer Zeichenkette befindet (im Falle von Zeichenketten variabler Größe), können Sie slice() und substr() kombinieren.

Ich hatte eine Zeichenkette mit dynamisch erstelltem Markup mit einer durch Komma getrennten Liste von Anker-Tags. Die Zeichenfolge war etwas wie:

var str = "<a>text 1,</a><a>text 2,</a><a>text 2.3,</a><a>text abc,</a>";

Um das letzte Komma zu entfernen, bin ich wie folgt vorgegangen:

str = str.slice(0, -5) + str.substr(-4);

-1voto

Ali Yaghoubi Punkte 1092

Versuchen Sie zu verwenden toFixed

const str = "12345.00";
return (+str).toFixed(1);

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