String strip () dla JavaScript? [duplikat]
To pytanie ma już odpowiedź tutaj:
- Trim string w JavaScript? 24 odpowiedzi
Jaka jest czysta i wydajna implementacja JavaScript, która Usuwa spacje prowadzące i końcowe z ciągu znaków?
Na przykład:
" dog"
"dog "
" dog "
" dog "
All get turned into
"dog"
8 answers
Użyj tego:
if(typeof(String.prototype.trim) === "undefined")
{
String.prototype.trim = function()
{
return String(this).replace(/^\s+|\s+$/g, '');
};
}
Funkcja trim będzie teraz dostępna jako funkcja pierwszej klasy na Twoich ciągach. Na przykład:
" dog".trim() === "dog" //true
EDIT : wziął sugestię J-P, aby połączyć wzory regex w jeden. Dodano również modyfikator globalny zgodnie z sugestią Christopha.
Wziął pomysł Matthew Crumleya o wąchaniu funkcji trim przed odtworzeniem jej. Odbywa się to w przypadku, gdy wersja JavaScript użyta na kliencie jest nowsza i dlatego ma własną, natywna funkcja trim.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-13 20:56:49
Dla użytkowników jquery, a może $.trim(s)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-11 10:49:30
Gumbo już to zauważył w komentarzu, ale to powtarza się jako odpowiedź: metoda trim()
została dodana w JavaScript 1.8.1 i jest obsługiwana przez wszystkie nowoczesne przeglądarki (Firefox 3.5+, IE 9, Chrome 10, Safari 5.x), chociaż IE 8 i starsze go nie obsługują. Użycie jest proste:
" foo\n\t ".trim() => "foo"
Zobacz także:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-17 01:41:51
Oto funkcja, której używam.
function trim(s){
return ( s || '' ).replace( /^\s+|\s+$/g, '' );
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-13 16:08:14
Lepszy polyfill z MDN, który obsługuje usuwanie BOM i NBSP :
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
}
Należy pamiętać, że modyfikowanie wbudowanych prototypów wiąże się z hitem wydajności (ze względu na rezygnację silnika JS z wielu optymalizacji czasu pracy), a w sytuacjach krytycznych dla wydajności może być konieczne rozważenie alternatywy zdefiniowania myTrimFunction(string)
. Mając to na uwadze, jeśli kierujesz się na starsze środowisko bez natywnego wsparcia .trim()
, prawdopodobnie masz więcej ważne kwestie związane z wydajnością.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-14 16:22:42
Steven Levithan napisał kiedyś o tym, jak zaimplementować szybsze przycinanie JavaScript . Zdecydowanie warto to sprawdzić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-13 17:14:19
Jeśli już używasz jQuery, możesz chcieć rzucić okiem na jQuery.trim()
który jest już dostarczany z jQuery.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-09 22:32:52
Jeśli zamiast pisać nowy kod do przycinania ciągu znaków, patrzysz na istniejący kod, który wywołuje "strip ()" i zastanawiasz się, dlaczego nie działa, możesz sprawdzić, czy próbuje on dołączyć coś takiego jak Framework prototypejs i upewnić się, że faktycznie jest ładowany.
Framework ten dodaje funkcję strip do wszystkich obiektów String, ale jeśli np. zaktualizowałeś ją i Twoje strony internetowe nadal odnoszą się do starej.plik js to oczywiście nie zadziała.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-16 16:34:38