Что эквивалентно этому методу в JavaScriptC#
:
var x = "|f|oo||";
var y = x.Trim('|'); // "f|oo"
C # обрезает выбранный символ только в начале и конце строки!
javascript
string
trim
Fubo
источник
источник
Вы можете использовать регулярное выражение, например:
ОБНОВИТЬ:
Если вы хотите обобщить это в виде функции, вы можете сделать следующее:
источник
чтобы держать этот вопрос в курсе:
вот подход, который я бы выбрал вместо функции регулярного выражения, используя оператор распространения ES6.
Улучшенная версия после комментария @fabian (может обрабатывать только строки, содержащие один и тот же символ)
источник
[].concat(string)
что не является желаемым результатом. ИспользованиеArray.from(string)
будет работать.Версия без регулярных выражений, которая приятна глазу:
Для случаев использования, когда мы уверены, что символы на краях не повторяются.
источник
const trim = (str, chars) => str.split(chars).filter(x => { Boolean(x); console.log(typeof(x), x, Boolean(x)); }).join(chars); const str = "#//#//abc#//test#//end#//"; console.log(trim(str, '#//'));
Если вы имеете дело с более длинными строками, я считаю, что это должно превзойти большинство других вариантов за счет уменьшения количества выделенных строк до нуля или единицы:
Или, если вы хотите обрезать набор из нескольких символов:
РЕДАКТИРОВАТЬ: для удовольствия обрезайте слова (а не отдельные символы)
источник
Это может обрезать несколько символов за раз:
источник
Если вы определите эти функции в своей программе, ваши строки будут иметь обновленную версию,
trim
которая может обрезать все заданные символы:Источник
https://www.sitepoint.com/trimming-strings-in-javascript/
источник
Насколько мне известно, jQuery не имеет встроенной функции, о которой вы спрашиваете. Однако с помощью javascript вы можете просто использовать replace для изменения содержимого вашей строки:
Это заменит все вхождения | с ничем.
источник
$
подобное только в конце:"||spam|||".replace(/\|+$/g, "")
или^
подобное только в начале:"||spam|||".replace(/^\|+/g, "")
Это обрезает все ведущие и конечные разделители
источник
Я бы посоветовал взглянуть на lodash и на то, как они реализовали эту
trim
функцию.См. Документацию и исходный код Lodash Trim, чтобы увидеть точный код, выполняющий обрезку.
Я знаю, что это не дает точного ответа на ваш вопрос, но я думаю, что по такому вопросу полезно указать ссылку на библиотеку, поскольку другие могут найти ее полезной.
источник
Лучший способ решить эту задачу (аналогично
trim
функции PHP ):PS: почему я опубликовал свой ответ, когда большинство людей уже делали это раньше? Поскольку я нашел "лучшую" ошибку во всех ответах: все использовали мета '+' вместо '*', потому что
trim
необходимо удалить символы, ЕСЛИ ОНИ НАХОДЯТСЯ В НАЧАЛЕ И / ИЛИ КОНЕЦ, но он возвращает исходную строку в противном случае .источник
расширяя ответ @leaf, вот тот, который может принимать несколько символов:
источник
Мне нравится решение от @ Pho3niX83 ...
Давайте расширим его словом "слово" вместо "char" ...
источник
источник
(обратите внимание на двойное экранирование.
\\
необходимо, чтобы в строке была фактически одинарная косая черта , которая затем приводит к экранированию|
в regExp ).Только несколько символов нуждаются в regExp-Escaping. , среди них оператор трубы.
источник
пытаться:
источник
источник
Попробуйте этот метод:
источник