我试图按照CSS格式从字符串中提取数字,如下所示:
str == "50.1px"
sz = str.match(/+([0-9]|\.)/)
它抱怨+
表达式,除非我将其转义,但随后sz
为空。如果我删除+
,它只返回第一个数字。我完全难过了。
答案 0 :(得分:5)
你应该只使用Javascripts .parseFloat()
。它会自动删除尾随字符。
sz = parseFloat('50.1px'); // 50.1
MDN:
parseFloat解析其参数,一个字符串,并返回一个浮点 数。如果遇到符号(+或 - )以外的字符, 数字(0-9),小数点或指数,它返回值 到那时为止,忽略了那个角色并且都成功了 字符。允许前导和尾随空格。
答案 1 :(得分:1)
您必须将+
放在表达式的末尾,例如:
([0-9])+
所以你可以使用:
sz = str.match(/([0-9.])+/)[0]
答案 2 :(得分:1)
您可以使用parseFloat
OR
您可以使用jQuery
的{{1}}和.height()
API来获取所选元素的高度和宽度。这些函数返回相应的高度宽度,不带px后缀。
如果你喜欢使用正则表达式,那么这是正确的
.width()