我正在尝试按照 CSS 格式从字符串中提取数字,如下所示:
str == "50.1px"
sz = str.match(/+([0-9]|\.)/)
除非我将其转义,否则它会抱怨该+
表达式,但随后sz
为空。如果我删除+
它,它只返回第一个数字。我完全被难住了。
我正在尝试按照 CSS 格式从字符串中提取数字,如下所示:
str == "50.1px"
sz = str.match(/+([0-9]|\.)/)
除非我将其转义,否则它会抱怨该+
表达式,但随后sz
为空。如果我删除+
它,它只返回第一个数字。我完全被难住了。
你应该只使用Javascripts .parseFloat()
。它会自动去除尾随字符。
sz = parseFloat('50.1px'); // 50.1
医疗器械网络:
parseFloat 解析它的参数,一个字符串,并返回一个浮点数。如果遇到符号(+ 或 -)、数字 (0-9)、小数点或指数以外的字符,则返回该点之前的值并忽略该字符和所有后续字符。允许前导和尾随空格。
您可以使用parseFloat
或者
您可以使用jQuery
's.height()
和.width()
API 来获取所选元素的高度和宽度。这些函数会返回相应的不带 px 后缀的高度宽度。
如果您非常喜欢使用正则表达式,那么这是正确的
var pattern = /[0-9.]+/
您必须将 the+
放在表达式的末尾,例如:
([0-9])+
所以你可以使用:
sz = str.match(/([0-9.])+/)[0]