Jaki jest prosty sposób na usunięcie ostatnich dwóch znaków ciągu?
Odpowiedzi:
Aby przekonwertować 245pxw 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 parseIntto 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 substrtest na tyle, że parseIntmetoda 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.
substrmetody bez przycinania.s.substr(0, s.length-2) == 0, użyj substrmetody, która będzie najlepsza, ponieważ "250 " == 250(nawet ze spacją) datrueparseInttrasy.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 *1sł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.
remwartości.
parseInt('245px', 10)