jQuery/Javascript - 如何将像素值(20px)转换为数值(20)

Joh*_*man 94 javascript jquery

我知道jQuery有一个帮助方法,用于将单元字符串解析为数字.这样做的jQuery方法是什么?

var a = "20px";
var b = 20;
var c = $.parseMethod(a) + b;
Run Code Online (Sandbox Code Playgroud)

And*_*y E 172

没有jQuery需要,Plain Ol'JS(tm)会做你的,

parseInt(a, 10);
Run Code Online (Sandbox Code Playgroud)

  • 旁注,`parseInt`函数实际上会忽略附加到整数字符串末尾的任何非整数字符.`parseInt('234sdfsdf')== 234` (6认同)
  • 每天都在爱我越来越多的javascript (4认同)
  • @AndyE:Isiden说parseInt不会在等效像素值中转换em值(或pt或其他),这是某些人可能需要的. (3认同)
  • @lsiden:它确实有效.`parseInt("20em",10)=== 20`和`parseInt("20pt",10)=== 20`.您可以随意将表达式粘贴到您喜欢的浏览器控制台中,或者查看[这个非常简短的示例](http://jsfiddle.net/8Rqz4/).您的代码中的其他任何问题都存在于您的代码中. (2认同)

Rol*_*oly 29

更一般地说,parseFloat将正确处理浮点数,而parseInt可能会默默地丢失有效数字:

parseFloat('20.954544px')
> 20.954544
parseInt('20.954544px')
> 20
Run Code Online (Sandbox Code Playgroud)


jus*_*ody 5

$.parseMethod = function (s)
{
    return Number(s.replace(/px$/, ''));
};
Run Code Online (Sandbox Code Playgroud)

虽然这与jQuery有什么关系,但我不知道