Вопрос: JavaScript chop / slice / обрезать последний символ в строке


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

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


1443


источник


Ответы:


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

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

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

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

2366



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

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

1143



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

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

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

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

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

248



Самый простой способ - использовать 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"

149



For a number like your example, I would recommend doing this over substring:

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

Do note that this will actually round the number, though, which I would imagine is desired but maybe not:

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

63



Using JavaScript's slice function:

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

This could be used to remove '_bar' at end of a string, of any length.


17



A regular expression is what you are looking for:

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

13



How about:

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

8



"a string".match(/(.*).$/)[1] // => a strin

"a string".match(/(.*).$/) // returns ["a string", "a strin"]

"a string".match(/(.*).{2}$/)[1] // to get two chars off => a stri
  1. (.*), captures any character multiple times
  2. ., matches last character, in this case
  3. $, matches the end of the string

6