删除字符串的后两个字符的简单方法是什么?
Answers:
要转换245px
为245,只需运行:
parseInt('245px', 10);
它仅保留前导数字,并丢弃所有其余的数字。
parseInt('09')
!
使用
var size = parseInt('245px', 10);
其中10是基数定义,parseInt
正在解析为十进制值
parseInt()函数解析一个字符串并返回一个整数。
签名是 parseInt(string, radix)
第二个参数强制parseInt使用以10为底的编号系统。
为什么?如果$(this).attr('num')为“ 08”,则不带基数的parsInt将变为0
要转换末尾没有“ px”的像素值。使用parseFloat。
parseFloat('245px'); // returns 245
注意:如果使用parseInt,则该值为正确的整数。如果该值是小数点后的值,例如245.50px,则该值将四舍五入为245。
parseFloat()
而不是像parseInt()
(请参阅developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…和stackoverflow.com/问题/ 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的测试占用了空间。我还尝试了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)
substr()
是现在的原有功能; 使用substring()
代替:(在这种情况下,语法是相同的)
str.substring(0, str.length-2);
或者,使用slice()
:
str.slice(0, -2);
slice()
IMO,看起来更干净。负值从末算起。
rem
值。
parseInt('245px', 10)