如何从245px中删除“px”
什么是一个简单的方法来删除string的最后两个字符?
在245转换245px
只需运行:
parseInt('245px', 10);
它只保留领先的数字,丢弃所有其他的数据。
使用
var size = parseInt('245px', 10);
其中10是定义parseInt
的基数parsing为十进制值
使用parseInt,但不要使用没有基数的 parseInt
parseInt()函数parsing一个string并返回一个整数。
签名是parseInt(string, radix)
第二个参数强制parseInt使用基本的十编号系统。
- ParseInt()的默认inputtypes是十进制(以10为底)。
- 如果数字以“0”开始,则假定为八进制(基数8)。
- 如果以“0x”开始,则假定为hex
为什么? 如果$(this).attr('num')将是“08”parsInt没有基数将变成0
这正是你所要求的:删除一个string的最后两个字符:
s.substr(0, s.length-2);
在最后不用“px”来转换一个像素值。 使用parseFloat。
parseFloat('245px', 10);//returns 245
注意:如果使用parseInt,如果值是一个整数,那么vaue将是正确的。 如果该值是一个像245.50px的小数,那么该值将被舍入为245。
令人惊讶的是,子串方法s.substr(0, s.length-2);
实际上是更快的删除px
(是的,它不是那么干净,如果有一个空间,它将保持 – "250px" -> "250"
vs "250 px" -> "250 "
) 。
如果你想占空间(你可能应该),那么使用.trim()
函数实际上会减慢substr
testing, parseInt
方法实际上变得更好。
使用parseInt(s, 10)
另外一个好处是你也可以进行types转换,并且可以立即开始将它应用到math函数中。
所以最终,这取决于你计划如何处理结果。
- 如果只显示,那么使用
substr
方法没有修剪可能是你最好的select。 - 如果你只是想看看没有px的值是否与另一个值
s.substr(0, s.length-2) == 0
,那么使用substr
方法将是最好的,因为"250 " == 250
(即使有空间)的结果也是true
- 如果你想考虑空间的可能性,把它添加到另一个值,或者用它来计算一些东西,那么你可能要考虑使用
parseInt
路由。
http://jsperf.com/remove-px-from-coord
在jspref帐户上testing一个空间。 我也尝试了一个s.split('px')[0]
和s.replace(/ *px/g, '')
函数,发现速度较慢。
随意添加额外的testing用例。
检查http://www.w3schools.com/jsref/jsref_substr.asp在你的情况会是这样的;
string.substr(0, string.length - 2)