1

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

str == "50.1px"

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

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

4

3 回答 3

5

你应该只使用Javascripts .parseFloat()。它会自动去除尾随字符。

sz = parseFloat('50.1px');  // 50.1

医疗器械网络:

parseFloat 解析它的参数,一个字符串,并返回一个浮点数。如果遇到符号(+ 或 -)、数字 (0-9)、小数点或指数以外的字符,则返回该点之前的值并忽略该字符和所有后续字符。允许前导和尾随空格。

于 2012-07-30T18:10:06.373 回答
1

您可以使用parseFloat

或者

您可以使用jQuery's.height().width()API 来获取所选元素的高度和宽度。这些函数会返回相应的不带 px 后缀的高度宽度。

如果您非常喜欢使用正则表达式,那么这是正确的

var pattern = /[0-9.]+/
于 2012-07-30T18:26:33.337 回答
1

您必须将 the+放在表达式的末尾,例如:

([0-9])+

所以你可以使用:

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

于 2012-07-30T18:10:44.080 回答