javascript regexp,无法获取+表达式

时间:2012-07-30 18:08:45

标签: javascript regex

我试图按照CSS格式从字符串中提取数字,如下所示:

str == "50.1px"

sz = str.match(/+([0-9]|\.)/)

它抱怨+表达式,除非我将其转义,但随后sz为空。如果我删除+,它只返回第一个数字。我完全难过了。

3 个答案:

答案 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()