No Image

Javascript обрезать строку с конца

СОДЕРЖАНИЕ
0 просмотров
11 марта 2020

В яваскрипте есть две функции, которые обрезают строку: substring(int start, int stop) и substr(int start, int length) . В качестве примера будет взята строка: «Привет веселый мир!»

Таблица индексов и номеров

Строка в яваскрипте является массивом, так что фактический номер символа, отличается от индекса массива на единицу. Чтобы стало понятно ниже приведена таблица символов и индексов строки.

номер 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
П р и в е т в е с е л ы й м и р !
индекс 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

substr()

Синтаксис substr(int start, int length) .

int start — обязательное значение, индекс начала обрезания строки (можно передать отрицательное значение).

int length — необязательное поле, количество символов, которые будут обрезаны от начала параметра start . Если этот параметр опущен, то строка будет обрезана до конца от начала start .

Пример

substring()

Синтаксис substring(int start, int stop) .

int start — обязательное значение, индекс начала обрезания строки.

int stop — необязательное поле, номер символа, на котором закончится обрезка строки. Если этот параметр опущен, то строка будет обрезана до конца от начала start .

Пример

На заметку

Если в функцию substring() передать отрицательные значения (в любой из параметров), он будет восприниматься как ноль.

Если в функции substring() stop > start , то параметры поменяются местами.

1356211 просмотра

22 ответа

47158 Репутация автора

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

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

Ответы (22)

2614 плюса

73755 Репутация автора

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

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

9 плюса

3925 Репутация автора

Автор: dariom Размещён: 04.06.2009 08:38

64 плюса

Читайте также:  Аватары из аватарии девочки

370807 Репутация автора

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

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

3 плюса

38287 Репутация автора

Если вы хотите сделать общее округление поплавков, вместо того, чтобы просто обрезать последний символ:

EDIT: Похоже, для этого существует встроенная функция, как указывает Паоло. Это решение, очевидно, намного чище, чем мое. Используйте parseFloat, за которым следует toFixed

1181 плюса

105052 Репутация автора

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

Автор: Jason S Размещён: 04.06.2009 09:41

-3 плюса

272 Репутация автора

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

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

Извините за мой графин, но сообщение было помечено как «jquery» раньше. Таким образом, вы не можете использовать slice () внутри jQuery, потому что slice () – это метод jQuery для операций с элементами DOM, а не подстроки . Иными словами, ответ @Jon Erickson предлагает действительно идеальное решение.

Однако ваш метод будет работать из функции jQuery, внутри простого Javascript. Необходимо сказать из-за последнего обсуждения в комментариях, что jQuery – это гораздо более частое продление JS, чем его собственный родитель, самый известный ECMAScript.

Здесь также существуют два метода:

string.substring(from,to) как плюс, если ‘to’ index nulled возвращает остальную строку. поэтому: string.substring(from) положительный или отрицательный .

и некоторые другие – substr () – которые обеспечивают диапазон подстроки и «длина» могут быть только положительными: string.substr(start,length)

Также некоторые сопровождающие предполагают, что последний метод string.substr(start,length) не работает или работает с ошибкой для MSIE.

Автор: swift Размещён: 03.08.2010 04:52

-6 плюса

16672 Репутация автора

Используйте подстроку, чтобы получить все слева от _bar. Но сначала вы должны получить instr _bar в строке:

Читайте также:  Сломался каблук на сапогах

3 – это начало, а 7 – длина.

Автор: griegs Размещён: 30.08.2010 03:08

250 плюса

608860 Репутация автора

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

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

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

1 плюс

215489 Репутация автора

14 плюса

5087 Репутация автора

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

Автор: w35l3y Размещён: 30.08.2010 03:09

152 плюса

245145 Репутация автора

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

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

Автор: Tim Down Размещён: 30.08.2010 10:15

-3 плюса

104 Репутация автора

Автор: kamal Размещён: 27.12.2012 02:13

7 плюса

15273 Репутация автора

  1. (. *), захватывает любой символ несколько раз
  2. ., соответствует последнему символу, в этом случае
  3. $, соответствует концу строки

Автор: juanpastas Размещён: 28.12.2012 04:38

5 плюса

2393 Репутация автора

3 плюса

Репутация автора

22 плюса

380 Репутация автора

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

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

5 плюса

425 Репутация автора

7 плюса

88 Репутация автора

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

Автор: Marc477 Размещён: 29.07.2015 04:58

1 плюс

27 Репутация автора

Просто используйте обрезку, если вам не нужны пробелы

Автор: invos Размещён: 15.01.2016 06:48

-1 плюса

85 Репутация автора

В случаях, когда вы хотите удалить что-то, что близко к концу строки (в случае строк с переменным размером), вы можете комбинировать slice () и substr ().

У меня была строка с разметкой, динамически построенная, со списком якорных тегов, разделенных запятой. Строка была примерно такой:

Читайте также:  Amd athlon x4 840 fm2

Чтобы удалить последнюю запятую, я сделал следующее:

4 плюса

8711 Репутация автора

Вот альтернатива, которую я не думаю, что видел в других ответах, просто для удовольствия.

Не такой разборчивый или простой, как срез или подстрока, но позволяет вам играть со строкой, используя несколько полезных методов массива, поэтому стоит знать.

плюса

148 Репутация автора

Я предпочитаю функцию подстроки:

var str = "12345.00";

str = str.substring (0, str.length – 1);

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

var str = "12345.00";

str = str.slice (-1); // Передача отрицательного значения в качестве первого аргумента удаляет символы с конца. Он аналогичен str.slice (0, -1)

Результат с помощью обоих методов – «12345.0».

На этой странице

Сводка

Метод substr() возвращает указанное количество символов из строки, начиная с указанной позиции.

Синтаксис

Параметры

Описание

Параметр start является индексом символа. Индекс первого символа равен 0, а последнего символа — на один меньше длины строки. Метод substr() начинает извлекать символы начиная с позиции start и собирая length символов (если он не достигнет раньше конца строки, в этом случае будет возвращено меньшее количество символов).

Если параметр start является положительным и он больше, либо равен длине строки, метод substr() вернёт пустую строку.

Если параметр start является отрицательным, метод substr() использует его как индекс символа, начиная с конца строки. Если параметр start отрицателен и по модулю больше длины строки, метод substr() будет использовать 0 в качестве начального индекса. Обратите внимание: описанная обработка отрицательных значений аргумента start не поддерживается JScript от Microsoft.

Если параметр length равен нулю или отрицателен, метод substr() вернёт пустую строку. Если параметр length опущен, метод substr() извлечёт все символы до конца строки.

Примеры

Пример: использование метода substr()

Полифилл

JScript от Microsoft не поддерживает отрицательные значения для начального индекса. Если вы хотите использовать эту возможность, вы можете использовать следующий код совместимости для обхода этой ошибки:

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector