Jaki jest prosty sposób na usunięcie ostatnich dwóch znaków ciągu?
javascript
string
variables
erase
Tomkay
źródło
źródło
parseInt('245px', 10)
parseInt('09')
!posługiwać się
var size = parseInt('245px', 10);
gdzie 10 to podstawa definiująca
parseInt
to analizowanie do wartości dziesiętnejużyj parseInt, ale nie używaj parseInt bez podstawy
Funkcja parseInt () analizuje ciąg znaków i zwraca liczbę całkowitą.
Podpis jest
parseInt(string, radix)
Drugi argument wymusza na parseInt użycie dziesięciokrotnego systemu numeracji.
czemu? gdyby $ (this) .attr ('num') było "08" parsInt bez podstawy stałoby się 0
źródło
Aby przekonwertować wartość piksela bez „px” na końcu. użyj parseFloat.
parseFloat('245px'); // returns 245
Uwaga: jeśli używasz parseInt, wartość będzie poprawna, jeśli wartość jest liczbą całkowitą. Jeśli wartość jest liczbą dziesiętną, na przykład 245,50 piks., Zostanie zaokrąglona do 245.
źródło
parseFloat()
nie przyjmuje radixparseInt()
(patrz developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /... & stackoverflow.com/ pytania / 8555649 /… )Robi dokładnie to, o co prosisz: usuwa ostatnie dwa znaki łańcucha:
s.substr(0, s.length-2);
źródło
Co zaskakujące, metoda podciągów
s.substr(0, s.length-2);
jest w rzeczywistości nieco szybsza w usuwaniupx
(tak, nie wygląda tak czysto, a jeśli jest miejsce, pozostanie -"250px" -> "250"
vs"250 px" -> "250 "
).Jeśli chcesz wziąć pod uwagę spacje (co prawdopodobnie powinieneś), użycie tej
.trim()
funkcji w rzeczywistości spowolnisubstr
test na tyle, żeparseInt
metoda faktycznie stanie się lepsza.Dodatkową zaletą używania
parseInt(s, 10)
jest to, że uzyskujesz również konwersję typu i możesz natychmiast zacząć stosować ją do funkcji matematycznych.Ostatecznie to naprawdę zależy od tego, co planujesz zrobić z wynikiem.
substr
metody bez przycinania.s.substr(0, s.length-2) == 0
, użyjsubstr
metody, która będzie najlepsza, ponieważ"250 " == 250
(nawet ze spacją) datrue
parseInt
trasy.http://jsperf.com/remove-px-from-coord
Testy na jspref uwzględniają spację. Spróbowałem też
s.split('px')[0]
is.replace(/ *px/g, '')
funkcji, oba okazały się wolniejsze.Zapraszam do dodawania dodatkowych przypadków testowych.
źródło
Chociaż parseInt () jest dobrą opcją, ale nadal dobrze jest mieć wiele innych rozwiązań
var pixels = '245px'; Number(pixels.replace('px', ''));
źródło
Sprawdź http://www.w3schools.com/jsref/jsref_substr.asp W twoim przypadku byłoby coś takiego
string.substr(0, string.length - 2)
źródło
Wolę:
"245px".replace(/px/,'')*1
ponieważ nie otacza wejścia.
Ponadto
*1
służy do przesyłania go do int.źródło
substr()
jest teraz starszą funkcją ; użyjsubstring()
zamiast tego: (składnia jest taka sama w tym przypadku )str.substring(0, str.length-2);
Lub użyj
slice()
:str.slice(0, -2);
slice()
wygląda na znacznie czystszą, IMO. Wartości ujemne liczą się od końca.źródło
rem
wartości.