我的属性表示“5 px”,“8px”“6em”以及其他一些我目前无法想到的其他属性。 我只对数值(即5,8或6)感兴趣。我知道我可以做一些正则表达式,但我想知道是否有一个简短的,有文档的,跨浏览器和可读的jquery / javascript函数已经提供了此?
的问候, 的Jeroen。
PS不确定标题中的措辞是否正确,请提供替代方案的建议。
答案 0 :(得分:2)
答案 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]
会。
:)