Jaki jest prosty sposób na usunięcie ostatnich dwóch znaków ciągu?
Odpowiedzi:
Aby przekonwertować 245px
w 245, po prostu uruchom:
parseInt('245px', 10);
Zachowuje tylko wiodące liczby, a resztę odrzuca.
parseInt('09')
!
posługiwać się
var size = parseInt('245px', 10);
gdzie 10 to podstawa definiująca parseInt
to analizowanie do wartości dziesiętnej
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
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.
parseFloat()
nie przyjmuje radix parseInt()
(patrz developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /... & stackoverflow.com/ pytania / 8555649 /… )
Co zaskakujące, metoda podciągów s.substr(0, s.length-2);
jest w rzeczywistości nieco szybsza w usuwaniu px
(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 spowolni substr
test na tyle, że parseInt
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żyj substr
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]
i s.replace(/ *px/g, '')
funkcji, oba okazały się wolniejsze.
Zapraszam do dodawania dodatkowych przypadków testowych.
Chociaż parseInt () jest dobrą opcją, ale nadal dobrze jest mieć wiele innych rozwiązań
var pixels = '245px';
Number(pixels.replace('px', ''));
Sprawdź http://www.w3schools.com/jsref/jsref_substr.asp W twoim przypadku byłoby coś takiego
string.substr(0, string.length - 2)
Wolę:
"245px".replace(/px/,'')*1
ponieważ nie otacza wejścia.
Ponadto *1
służy do przesyłania go do int.
substr()
jest teraz starszą funkcją ; użyj substring()
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.
rem
wartości.
parseInt('245px', 10)