Jak przyciąć ciąg w JavaScript?
javascript
string
trim
Vinod
źródło
źródło
String.trim()
działa również dobrze po wyjęciu z pudełka w Node.js.String.trim()
metoda klasy nie istnieje w ES5 / Node.js; zamiastString.prototype.trim()
tego istnieje metoda instancji. Zastosowanie:,' foo '.trim()
nieString.trim(' foo ')
.$.trim(str)
jest zawsze dostępny.Odpowiedzi:
Wszystkie przeglądarki od IE9 + mają
trim()
metodę ciągów.W przypadku przeglądarek, które nie obsługują
trim()
, możesz użyć tego wypełnienia z MDN :To powiedziawszy, jeśli używasz
jQuery
,$.trim(str)
jest również dostępne i obsługuje niezdefiniowane / null.Zobacz:
źródło
$.trim(str)
jest zawsze dostępny.Przycinanie z jQuery jest wygodne, jeśli już używasz tego frameworka.
Często używam jQuery, więc przycinanie za pomocą niego znaków jest dla mnie naturalne. Ale możliwe, że istnieje reakcja na jQuery? :)
źródło
Chociaż powyżej znajduje się kilka poprawnych odpowiedzi, należy zauważyć, że
String
obiekt w JavaScript ma natywną.trim()
metodę od ECMAScript 5 . Dlatego idealnie byłoby, gdyby każda próba prototypowania metody przycinania naprawdę sprawdziła, czy już istnieje.Dodano natywnie w: JavaScript 1.8.1 / ECMAScript 5
Tak obsługiwane w:
Firefox: 3.5+
Safari: 5+
Internet Explorer: IE9 + (tylko w trybie Standardowym!) Http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more .aspx
Chrome: 5+
Opera: 10.5+
Tabela obsługi ECMAScript 5: http://kangax.github.com/es5-compat-table/
źródło
Istnieje wiele implementacji , których można użyć. Najbardziej oczywistym wydaje się być coś takiego:
źródło
Prosta wersja tutaj Jaka jest ogólna funkcja przycinania JavaScript?
źródło
Wiem, że to pytanie zostało zadane trzy lata temu. Teraz
String.trim()
zostało natywnie dodane w JavaScript. Na przykład można przyciąć bezpośrednio w następujący sposób,źródło
Jeśli używasz jQuery, użyj
jQuery.trim()
funkcji. Na przykład:źródło
Rażące Badassery ma 11 różnych wykończeń z informacjami porównawczymi:
http://blog.stevenlevithan.com/archives/faster-trim-javascript
Nic dziwnego, że oparte na wyrażeniach regularnych są wolniejsze niż tradycyjna pętla.
Oto mój osobisty. Ten kod jest stary! Napisałem go dla JavaScript 1.1 i Netscape 3 i od tego czasu jest tylko nieznacznie aktualizowany. (Oryginał użył String.charAt)
źródło
Użyj metod Język JavaScript:
String.trimLeft()
,String.trimRight()
, iString.trim()
.String.trim()
jest obsługiwany w IE9 + i wszystkich innych głównych przeglądarkach :String.trimLeft()
iString.trimRight()
są niestandardowe, ale są obsługiwane we wszystkich głównych przeglądarkach oprócz IEObsługa IE jest łatwa dzięki wielopełniaczowi:
źródło
trimLeft
anitrimRight
.lTrim()
irTrim()
metod.Bezwstydnie skradziony Mattowi Dueregowi .
źródło
Teraz możesz używać string.trim (), który jest natywną implementacją Javascript
Zobacz też
źródło
Przytnij kod z projektu kątowego js
i nazwać to jak
trim(" hello ")
źródło
użyj po prostu kodu
Obsługa przeglądarki
Do starej przeglądarki dodaj prototyp
źródło
replace
funkcję regexp. nie zrozumiałem tego całkowicie. czy chciałbyś wyjaśnić to trochę bardziej w wyrażeniu regularnym?Oto bardzo prosty sposób:
źródło
trim
powinien usuwać tylko początkowe i końcowe białe spacje (które obejmują tabulatory i inne znaki). Zamiast tego usuwa wszystkie spacje, w tym te na środku.Używanie
trim()
na String, który jest rodzimy, może być najłatwiejszym sposobem:źródło
Możesz po prostu zadeklarować zmienną jako ciąg i użyć jej funkcji przycinania:
źródło
Obecnie prawie każda przeglądarka obsługuje
String.prototype.trim()
.Używasz go w ten sposób:
W przypadku, gdy nadal będziesz musiał obsługiwać starą przeglądarkę, która nie obsługuje tej funkcji, jest to polifill sugerowany przez MDN:
źródło
Mam bibliotekę, która korzysta z przycinania. rozwiązał to za pomocą następującego kodu.
źródło
.trim()
metodę na równą natywnej,String.prototype.trim
która została już ustawionareturn jQuery.trim(this)
, tworząc przepełnienie stosu.Od poprzednich odpowiedzi różni się dodawanie flagi
m
.Flaga
m
przeszuka tekst kilku liniowych. W tym trybie znacznik początku i końca wzoru (^
$
) jest wstawiany przed i po znaku nowej linii (\n
).źródło
Możesz to zrobić za pomocą zwykłego JavaScript:
źródło
Teraz trim () build w javascript.
po prostu kod konsoli lub wydrukuj, a następnie Twoje imię również zostanie przycięte.
źródło
Nie wiem, jakie błędy mogą tutaj ukryć, ale używam tego:
Lub jeśli wpis zawiera tekst:
Kolejna próba:
źródło
Oto w TypeScript:
Wróci do wyrażenia regularnego, jeśli natywny prototyp nie jest dostępny.
źródło
Napisałem tę funkcję dla trim, gdy funkcja .trim () nie była dostępna w JS w 2008 roku. Niektóre starsze przeglądarki nadal nie obsługują funkcji .trim () i mam nadzieję, że ta funkcja może komuś pomóc.
FUNKCJA PRZYCINANIA
Objaśnienie : Funkcja trim () akceptuje obiekt ciągu i usuwa wszelkie początkowe i końcowe białe spacje (spacje, tabulatory i znaki nowej linii) i zwraca przycięty ciąg. Za pomocą tej funkcji można przyciąć dane wejściowe formularza, aby zapewnić przesyłanie prawidłowych danych.
Przykładowo funkcję można wywołać w następujący sposób.
źródło
mine używa pojedynczego wyrażenia regularnego do wyszukiwania przypadków, w których konieczne jest przycinanie, i używa wyników wyrażenia regularnego do określenia pożądanych granic podciągów:
jedyną decyzją projektową, która weszła w to, było użycie podłańcucha do wykonania ostatecznego przechwytywania. s / \?: // (przechwytywanie terminu średni), a fragment zastępujący staje się:
w tych implikacjach postawiłem dwa zakłady na wyniki:
czy implementacja podłańcucha kopiuje dane oryginalnego ciągu? jeśli tak, to w pierwszym, gdy trzeba przyciąć łańcuch, następuje podwójne przejście, najpierw w wyrażeniu regularnym (które, miejmy nadzieję, może być częściowe), a drugie w ekstrakcji podłańcucha. mam nadzieję, że implementacja podłańcuchu odwołuje się tylko do oryginalnego ciągu, więc operacje takie jak podłańcuch mogą być prawie darmowe. krzyżować palce
jak dobre jest przechwytywanie w wyrażeniu regularnym? średni okres, wartość wyjściowa, może potencjalnie być bardzo długi. nie byłem gotowy stwierdzić, że przechwytywanie wszystkich wyrażeń regularnych nie przeszkadza w przechwytywaniu danych wejściowych o kilkaset KB, ale też nie testowałem (zbyt wiele środowisk uruchomieniowych, przepraszam!). drugi ZAWSZE uruchamia przechwytywanie; jeśli twój silnik może to zrobić bez uderzenia, być może wykorzystując niektóre z powyższych technik sznurkowych, na pewno UŻYJ GO!
źródło
Dla IE9 + i innych przeglądarek
źródło