JavaScript нарезать / вырезать / обрезать последний символ в строке - PullRequest
1745 голосов
/ 05 июня 2009

У меня есть строка, 12345.00, и я хотел бы, чтобы она вернула 12345.0.

Я посмотрел на trim, но похоже, что это только обрезка пробелов и slice, которые я не вижу, как это будет работать Есть предложения?

Ответы [ 21 ]

2897 голосов
/ 05 июня 2009

Вы можете использовать функцию подстроки :

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

Это принятый ответ, но в соответствии с приведенными ниже разговорами синтаксис slice гораздо понятнее:

var str = "12345.00";
str = str.slice(0, -1); // "12345.0"
1231 голосов
/ 05 июня 2009

Вы можете использовать ломтик ! Вы просто должны убедиться, что знаете, как им пользоваться. Положительные # относятся к началу, отрицательные - к концу.

js>"12345.00".slice(0,-1)
12345.0
252 голосов
/ 30 августа 2010

Вы можете использовать метод подстроки строковых объектов JavaScript:

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

Безоговорочно удаляет последние четыре символа из строки s.

Однако, если вы хотите условно удалить последние четыре символа, только если они точно _bar:

var re = /_bar$/;
s.replace(re, "");
154 голосов
/ 30 августа 2010

Самый простой способ - использовать метод строки slice, который допускает отрицательные позиции (соответствующие смещениям от конца строки):

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

Если вам нужно что-то более общее, чтобы удалить все после (и включая) последнее подчеркивание, вы можете сделать следующее (при условии, что s гарантированно содержит хотя бы одно подчеркивание):

var s = "your_string";
var withoutLastChunk = s.slice(0, s.lastIndexOf("_"));
// withoutLastChunk == "your"
66 голосов
/ 05 июня 2009

Для числа, подобного вашему примеру, я бы порекомендовал сделать это более substring:

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

Обратите внимание, что на самом деле это будет округлять число, хотя, я думаю, это желательно, но, возможно, нет:

alert(parseFloat('12345.46').toFixed(1)); // 12345.5
27 голосов
/ 27 февраля 2014

Использование функции слайса JavaScript:

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

Это можно использовать для удаления '_bar' в конце строки любой длины.

15 голосов
/ 30 августа 2010

Регулярное выражение - это то, что вы ищете:

var str = "foo_bar";
alert(str.replace(/_bar$/, ""));
9 голосов
/ 05 июня 2009

Как насчет:

var myString = "12345.00";
myString.substring(0, myString.length - 1);
8 голосов
/ 29 августа 2013

Попробуйте это:

var myString = "Hello World!";
myString.slice(0, -1);
7 голосов
/ 29 июля 2015

Используйте регулярное выражение:

var aStr = "12345.00";
aStr = aStr.replace(/.$/, '');
...