У меня есть строка, 12345.00
и я хотел бы ее вернуть 12345.0
.
Я посмотрел trim
, но похоже, что это только обрезка пробелов, и slice
я не вижу, как это будет работать. Какие-либо предложения?
javascript
slice
trim
Фил Паффорд
источник
источник
Math.round('0.5') === 1
;)Ответы:
Вы можете использовать функцию подстроки :
Это принятый ответ, но в соответствии с приведенными ниже разговорами синтаксис среза намного понятнее:
источник
str = str.substring(0, str.length -1);
slice
иsubstring
методы все самое то же самое; кроме того, чтоslice()
принимает отрицательный индекс относительно конца строки, но не тотsubstring
, что выдаетout-of-bound
ошибкуsubstring
это на 11% быстрее, чемslice
. jsperf.com/js-slice-vs-substring-testВы можете использовать ломтик ! Вы просто должны убедиться, что знаете, как им пользоваться. Положительные числа относятся к началу, отрицательные числа - к концу.
источник
substring
метод и для динамических строк? Используя str.length для динамического получения длины?Вы можете использовать метод substring строковых объектов JavaScript:
Безоговорочно удаляет последние четыре символа из строки
s
.Однако, если вы хотите условно удалить последние четыре символа, только если они точно
_bar
:источник
slice
здесь лучшеs.slice(0, -4)
Самый простой способ - использовать
slice
метод строки, который допускает отрицательные позиции (соответствующие смещению от конца строки):Если вам нужно что-то более общее, чтобы удалить все после (и в том числе) последнего подчеркивания, вы можете сделать следующее (при условии, что
s
оно обязательно содержит хотя бы одно подчеркивание):источник
Для числа, подобного вашему примеру, я бы рекомендовал сделать это снова
substring
:Обратите внимание, что на самом деле это будет округлять число, что, я думаю, желательно, но, возможно, нет:
источник
Используя функцию слайса JavaScript:
Это может быть использовано для удаления '_bar' в конце строки любой длины.
источник
Регулярное выражение - это то, что вы ищете:
источник
Попробуй это:
источник
Как насчет:
источник
Используйте регулярное выражение:
источник
источник
источник
Вот альтернатива, которую я не думаю, что видел в других ответах, просто для удовольствия.
Не такой разборчивый или простой, как слайс или подстрока, но он позволяет вам играть со строкой, используя несколько хороших методов массива, так что стоит знать.
источник
источник
Кратчайший путь:
источник
Если вы хотите сделать общее округление чисел, а не просто обрезать последний символ:
РЕДАКТИРОВАТЬ: Кажется, что существует встроенная функция для этого, как указывает Паоло. Это решение, очевидно, намного чище, чем мое. Используйте parseFloat с последующим toFixed
источник
источник
https://jsfiddle.net/invos/w3zeqv6v/
/programming/34817546/javascript-how-to-delete-last-two-characters-in-a-string
"11.01 °C".slice(0,-2).trim()
источник
Представление
Сегодня 2020.05.13 я выполняю тесты выбранных решений на Chrome v81.0, Safari v13.1 и Firefox v76.0 на MacOs High Sierra v10.13.6.
Выводы
slice(0,-1)
(D) является быстрым или самым быстрым решением для коротких и длинных строк , и рекомендуются в качестве быстрого решения кроссбраузерногоsubstring
(C) иsubstr
(E), являются быстрымиподробности
Я выполняю два теста для решений A , B , C , D , E ( ext ), F , G (мой)
Решения представлены в следующем фрагменте
Показать фрагмент кода
Вот пример результатов для Chrome для короткой строки
источник
Имейте в виду, что
String.prototype.{ split, slice, substr, substring }
работают с кодированными строками UTF-16Ни один из предыдущих ответов не поддерживает Unicode. Строки кодируются как UTF-16 в большинстве современных механизмов JavaScript, но для более высоких кодовых точек Unicode требуются суррогатные пары , поэтому более старые, уже существующие строковые методы работают с кодовыми единицами UTF-16, а не с кодовыми точками Unicode.
Кроме того, ответы RegExp не соответствуют разрывам строк в конце в их текущей форме:
Используйте итератор строк для итерации символов
Юникод-ориентированный код использует итератор строки; увидеть
Array.from
и...
распространить .string[Symbol.iterator]
можно использовать (например, вместоstring
).Также смотрите Как разделить строку Unicode на символы в JavaScript .
Примеры:
Используйте
s
иu
флаги наRegExp
В
dotAll
илиs
флаг марки.
соответствуют символы разрыва строки, тоunicode
илиu
флаг позволяет определенные Unicode-функции , связанные.Примеры:
Обратите внимание, что некоторые графемы состоят из более чем одной кодовой точки, например,
🏳️🌈
которая состоит из последовательности🏳
(U + 1F3F3),VS16
(U + FE0F) ,ZWJ
(U + 200D) ,🌈
(U + 1F308). Здесь дажеArray.from
разделим это на четыре «персонажа». Сопоставление с ними возможно с помощью свойства свойства Unicode, которое экранируется от последовательности .источник
В случаях, когда вы хотите удалить что-то, что находится ближе к концу строки (в случае строк переменного размера), вы можете объединить slice () и substr ().
У меня была строка с разметкой, динамически построенная, со списком тегов привязки, разделенных запятой. Строка была что-то вроде:
Чтобы удалить последнюю запятую, я сделал следующее:
источник
Попробуй это:
Вы также можете попробовать живой пример работы на http://jsfiddle.net/inforrativejavascript/F7WTn/87/ .
источник
Извините за мою графоманию, но пост был помечен как 'jquery' ранее. Таким образом, вы не можете использовать slice () внутри jQuery, потому что slice () - это метод jQuery для операций с элементами DOM, а не с подстроками ... Другими словами, ответ @Jon Erickson предлагает действительно идеальное решение.
Однако ваш метод будет работать из функции jQuery внутри простого Javascript. В связи с последним обсуждением в комментариях нужно сказать, что jQuery является гораздо более часто обновляемым расширением JS, чем его собственный родительский наиболее известный ECMAScript.
Здесь также существуют два метода:
как наш:
string.substring(from,to)
как плюс, если 'to' index nulled возвращает остаток строки. итак:string.substring(from)
положительный или отрицательный ...и некоторые другие - substr () - которые предоставляют диапазон подстроки и «length» могут быть только положительными:
string.substr(start,length)
Также некоторые сопровождающие полагают, что последний метод
string.substr(start,length)
не работает или работает с ошибкой для MSIE.источник
String.prototype.slice
это нативный методslice()
метод jQuery для манипулирования DOM: API jQuery: .slice () . И конечно, это можно изобразить как полиморфное наследование JS Array.slice (), но это два разных метода, и я думаю, что это нужно различать. Так что это всего лишь приближение к этим знаниям..slice
переменную, которая является строкой, она будет делать именно то, что хотел OP. Не имеет значения, находится ли он «внутри jQuery», и нет никакого способа, которым он мог бы «вмешиваться» каким-либо образом, если только вы не перезапишитеString.prototype
jQuery, что, я уверен, предотвратит работу ЛЮБОГО кода javascript. Ваш ответ просто говорит, что другой ответ не является хорошим, и аргумент, который вы предоставляете, неверен.data
манипуляцию и в итоге получили эту «строку»), которая, если вы вызываетеslice
ее, не будет делать то, что вы хотите. Тем не менее, это не очень полезный ответ.Используйте подстроку, чтобы получить все слева от _bar. Но сначала вы должны получить значение _bar в строке:
3 - это начало, а 7 - длина.
источник