Який простий спосіб видалити два останні символи рядка?
Відповіді:
Щоб перетворити 245px
в 245, просто запустіть:
parseInt('245px', 10);
Він зберігає лише провідні числа, а всі інші відкидає.
parseInt('09')
!
використання
var size = parseInt('245px', 10);
де 10 є радікс визначення parseInt
є розбір до десяткового значення
Функція parseInt () аналізує рядок і повертає ціле число.
Підпис є parseInt(string, radix)
Другий аргумент змушує parseInt використовувати систему нумерації базових десяти.
чому? якщо $ (this) .attr ('num') буде "08", parsInt без радіуса стане 0
Для перетворення значення пікселя без "px" в кінці. використовуйте parseFloat.
parseFloat('245px'); // returns 245
Примітка: Якщо ви використовуєте parseInt, значення буде правильним, якщо значення є цілим числом. Якщо значення є десятковим, наприклад 245.50px, тоді значення буде округлено до 245.
parseFloat()
це, не приймаючи radix типу parseInt()
(Див. Developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… & stackoverflow.com/ questions / 8555649 /… )
Дивно, але метод substring s.substr(0, s.length-2);
насправді є набагато швидшим для видалення px
(так, він не такий чисто виглядає, і якщо є місце, він залишиться - "250px" -> "250"
vs "250 px" -> "250 "
).
Якщо ви хочете врахувати пробіли (що вам, мабуть, слід було б), то використання .trim()
функції насправді сповільнить substr
тест настільки, що parseInt
метод насправді стане вищим.
Додатковою перевагою використання parseInt(s, 10)
є те, що ви також отримуєте перетворення типу і можете відразу ж почати застосовувати його до математичних функцій.
Зрештою, це насправді залежить від того, що ви плануєте робити з результатом.
substr
метод без обробки.s.substr(0, s.length-2) == 0
, тоді substr
найкращим буде використання методу, оскільки "250 " == 250
(навіть з пробілом) вийде якtrue
parseInt
маршрут.http://jsperf.com/remove-px-from-coord
Тести на jspref враховують пробіл. Я також спробував a s.split('px')[0]
і s.replace(/ *px/g, '')
функцію, обидві виявилися повільнішими.
Не соромтеся додавати додаткові кейси.
Хоча parseInt () - хороший варіант, але все ж добре мати багато інших рішень
var pixels = '245px';
Number(pixels.replace('px', ''));
Перевірте http://www.w3schools.com/jsref/jsref_substr.asp У вашому випадку буде щось на зразок
string.substr(0, string.length - 2)
Я віддаю перевагу:
"245px".replace(/px/,'')*1
оскільки це не оточує вхід.
Крім того, *1
це для кастингу в int.
substr()
в даний час є спадщиною функція ; використовувати substring()
замість: (синтаксис у цьому випадку однаковий )
str.substring(0, str.length-2);
Або використовуйте slice()
:
str.slice(0, -2);
slice()
виглядає набагато чистіше, IMO. Негативні значення відлічуються з кінця.
rem
значень.
parseInt('245px', 10)