如何从245px中删除"px"

Tom*_*kay 78 javascript string variables erase

什么是删除字符串最后两个字符的简单方法?

Don*_*Don 163

要转换成245px245只运行:

parseInt('245px', 10);
Run Code Online (Sandbox Code Playgroud)

它只保留前导数字并丢弃所有其余数字.

  • 这是最具延展性的方式,但是你应该总是指定基数`parseInt('245px',10)` (7认同)
  • 当值为35.5px时你会怎么做...使用parseInt只会导致35 (4认同)
  • @MuhammadUmer:你可以使用'parseFloat'(http://www.w3schools.com/jsref/jsref_parsefloat.asp) (4认同)

Cas*_*jne 36

使用

var size = parseInt('245px', 10);
Run Code Online (Sandbox Code Playgroud)

其中10是定义的基数parseInt是解析为十进制

使用parseInt但不使用没有基数的 parseInt

parseInt()函数解析字符串并返回一个整数.

签名是 parseInt(string, radix)

第二个参数强制parseInt使用十进制编号系统.

  • ParseInt()的默认输入类型是十进制(基数为10).
  • 如果数字以"0"开头,则假定为八进制(基数为8).
  • 如果它以"0x"开头,则假定它是十六进制的

为什么?如果$(this).attr('num')为"08",则没有基数的parsInt将变为0


For*_*ver 16

转换最后没有"px"的像素值.使用parseFloat.

parseFloat('245px', 10);//returns 245
Run Code Online (Sandbox Code Playgroud)

注意:如果使用parseInt,如果值是整数,则vaue将是正确的.如果该值是小数,如245.50px,则该值将四舍五入为245.


Joc*_*hem 15

这完全符合您的要求:删除字符串的最后两个字符:

s.substr(0, s.length-2);
Run Code Online (Sandbox Code Playgroud)


Kyl*_*hay 5

出人意料的是,子方法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, '')功能,两者都发现速度较慢.

随意添加其他测试用例.