Який простий спосіб видалити два останні символи рядка?
Відповіді:
Щоб перетворити 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(навіть з пробілом) вийде якtrueparseIntмаршрут.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)