Frage JavaScript chop / slice / trimmen das letzte Zeichen in der Zeichenfolge


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

Ich habe es angeschaut trim, aber es sieht so aus, als würde es nur Whitespace trimmen und slice was ich nicht sehe, wie das funktionieren würde. Irgendwelche Vorschläge?


1480
2018-06-04 20:31


Ursprung


Antworten:


Du kannst den ... benutzen Teilzeichenfolge Funktion:

var str = "12345.00";
str = str.substring(0, str.length - 1); // "12345.0"

Dies ist die akzeptierte Antwort, aber wie in den Gesprächen unten, die Scheibe Syntax ist viel klarer:

var str = "12345.00";
str = str.slice(0, -1); // "12345.0"

2448
2018-06-04 20:35



Sie können verwenden Scheibe! Sie müssen nur sicherstellen, dass Sie wissen, wie man es benutzt. Positive Zahlen sind relativ zum Anfang, negative Zahlen sind relativ zum Ende.

js>"12345.00".slice(0,-1)
12345.0

1154
2018-06-04 21:41



Du kannst den ... benutzen Teilzeichenfolge Methode der JavaScript-String-Objekte:

s = s.substring(0, s.length - 4)

Es entfernt unbedingt die letzten vier Zeichen aus der Zeichenfolge s.

Wenn Sie jedoch möchten bedingt entferne die letzten vier Zeichen, nur wenn sie es sind genau  _bar:

var re = /_bar$/;
s.replace(re, "");

248
2017-08-30 03:08



Die einfachste Methode ist die Verwendung der slice Methode der Zeichenkette, die negative Positionen zulässt (entsprechend den Offsets vom Ende der Zeichenkette):

var s = "your string";
var withoutLastFourChars = s.slice(0, -4);

Wenn Sie etwas allgemeineres benötigen, um alles nach dem letzten Unterstrich (einschließlich) zu entfernen, können Sie Folgendes tun (solange s enthält garantiert mindestens einen Unterstrich):

var s = "your_string";
var withoutLastChunk = s.slice(0, s.lastIndexOf("_"));
// withoutLastChunk == "your"

149
2017-08-30 10:15



Für eine Nummer wie Ihr Beispiel würde ich empfehlen, dies zu tun substring:

alert(parseFloat('12345.00').toFixed(1)); // 12345.0

Beachten Sie, dass dies tatsächlich die Zahl runden wird, was ich mir vorstellen würde, ist aber erwünscht, aber vielleicht nicht:

alert(parseFloat('12345.46').toFixed(1)); // 12345.5

63
2018-06-04 20:42



JavaScript-Slice-Funktion verwenden:

var string = 'foo_bar';
string = string.slice(0, -4); // Slice off last four characters here

Dies könnte verwendet werden, um '_bar' am Ende eines Strings beliebiger Länge zu entfernen.


19
2018-02-27 11:14



Nach einem regulären Ausdruck suchen Sie:

var str = "foo_bar";
alert(str.replace(/_bar$/, ""));

13
2017-08-30 03:09



Wie wäre es mit:

var myString = "12345.00";
myString.substring(0, myString.length - 1);

8
2018-06-04 20:38