Jaki jest odpowiednik tej metody w JavaScriptC#
:
var x = "|f|oo||";
var y = x.Trim('|'); // "f|oo"
C # przycina wybrany znak tylko na początku i na końcu ciągu!
javascript
string
trim
fubo
źródło
źródło
Możesz użyć wyrażenia regularnego, takiego jak:
AKTUALIZACJA:
Jeśli chcesz uogólnić to na funkcję, możesz wykonać następujące czynności:
źródło
aby to pytanie było aktualne:
tutaj jest podejście, które wybrałbym zamiast funkcji regex przy użyciu operatora spreadu ES6.
Ulepszona wersja po komentarzu @fabian (obsługuje ciągi zawierające tylko ten sam znak)
źródło
[].concat(string)
nie pożądany wynik. UżywanieArray.from(string)
będzie działać.Wersja bez wyrażeń regularnych, która jest przyjemna dla oka:
Do przypadków użycia, w których jesteśmy pewni, że nie ma powtórzeń znaków poza krawędziami.
źródło
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, '#//'));
Jeśli masz do czynienia z dłuższymi ciągami, uważam, że powinno to przewyższyć większość innych opcji, zmniejszając liczbę przydzielonych ciągów do zera lub jednego:
Lub jeśli chcesz wyciąć z zestawu wielu znaków:
EDYCJA: Dla zabawy, przycinaj słowa (zamiast pojedynczych znaków)
źródło
Może to przyciąć kilka znaków naraz:
źródło
Jeśli zdefiniujesz te funkcje w swoim programie, twoje ciągi będą miały ulepszoną wersję,
trim
która może przyciąć wszystkie podane znaki:Źródło
https://www.sitepoint.com/trimming-strings-in-javascript/
źródło
O ile mi wiadomo, jQuery nie ma wbudowanej funkcji, o którą pytasz. Jednak w javascript możesz po prostu użyć zamiany, aby zmienić zawartość swojego ciągu:
Spowoduje to zastąpienie wszystkich wystąpień | z niczym.
źródło
$
takiego tylko na koniec:"||spam|||".replace(/\|+$/g, "")
lub coś^
takiego tylko na początku:"||spam|||".replace(/^\|+/g, "")
Ten przycina wszystkie ograniczniki wiodące i końcowe
źródło
Sugerowałbym przyjrzenie się lodashowi i temu, jak realizowali tę
trim
funkcję.Zobacz Lodash Trim, aby uzyskać dokumentację i źródło, aby zobaczyć dokładny kod, który wykonuje przycinanie.
Wiem, że to nie daje dokładnej odpowiedzi na twoje pytanie, ale myślę, że dobrze jest ustawić odniesienie do biblioteki na takie pytanie, ponieważ inni mogą uznać to za przydatne.
źródło
Najlepszym sposobem rozwiązania tego zadania jest (podobnie jak w przypadku
trim
funkcji PHP ):PS: dlaczego opublikowałem swoją odpowiedź, skoro większość ludzi już to zrobiła? Ponieważ znalazłem „najlepszy” błąd we wszystkich odpowiedziach: wszyscy używali meta „+” zamiast „*”, ponieważ „
trim
muszą usunąć znaki, JEŚLI SĄ NA POCZĄTKU I / LUB KOŃCU, ale zwracają oryginalny ciąg w innym przypadku .źródło
rozwijając odpowiedź @leaf, oto taka, która może mieć wiele znaków:
źródło
Podoba mi się rozwiązanie z @ Pho3niX83 ...
Rozszerzmy go o „słowo” zamiast „char” ...
źródło
źródło
(zwróć uwagę na podwójny znak ucieczki.
\\
potrzebny, aby mieć faktycznie pojedynczy ukośnik w ciągu , co następnie prowadzi do zmiany znaczenia|
w regExp ).Tylko kilka znaków wymaga regExp-Escaping. , wśród nich operator potoku.
źródło
próbować:
źródło
źródło
Wypróbuj tę metodę:
źródło