javascript / jquery:从长度属性中检索数字的快捷方法

时间:2011-02-26 10:25:59

标签: javascript jquery regex

我的属性表示“5 px”,“8px”“6em”以及其他一些我目前无法想到的其他属性。 我只对数值(即5,8或6)感兴趣。我知道我可以做一些正则表达式,但我想知道是否有一个简短的,有文档的,跨浏览器和可读的jquery / javascript函数已经提供了此?

的问候, 的Jeroen。

PS不确定标题中的措辞是否正确,请提供替代方案的建议。

3 个答案:

答案 0 :(得分:2)

使用parseInt功能:

var str = '5px';
alert(parseInt(str, 10));   // 5

请注意10的第二个参数代表那里的基数10.

答案 1 :(得分:1)

如果它们以08px(前导零)返回,请使用10的基数。否则parseint()认为你的号码是八进制的。

var value = parseInt(str, 10);

从jQuery作为CSS属性值返回可能永远不会发生,但这是一个很好的习惯。

答案 2 :(得分:0)

parseInt / parseFloat的组合(参见其他答案)可能是你最好的选择,但只是为了踢(如果你想让你的代码完全不可读),你总是可以使用带有额外奶酪的Regex:

+(str.match(/(-?\d+(?:\.\d+)?)/)||[,0])[1]

+运算符将结果转换为数字,如果||[,0]中没有数字,则str会提供默认数组。 [,0]可能无法在所有浏览器中使用,但[0,0]会。

:)