2

我一直在挠头并四处寻找,我似乎找不到另一个与我遇到的问题非常相似的问题。

我有一个变量,例如:

var style = ' font-size: 12px; line-height: 1.4em; ';

我可以很容易地使用(并将此方法用于我需要检索的许多其他值)提取 font-size 的值:

var match = /(?:^|\s)font-size\s*:\s*(\d+)px/i.exec( style );
fontsizetest = match && match[1];
console.log(fontsizetest);

但是当我尝试提取行高的值(具有相对 em 大小)时,我遇到了各种问题(主要是由于小数位):

在玩了一段时间后,这是我能找到的最接近的解决方案:

var match = /(?:^|\s)line-height\s*:\s*(\d|\.|\d*)em/i.exec( style );
lineheighttest = match && match[1];
console.log(lineheighttest);

但这不会返回我的值 1.4

任何将我指向正确方向的想法或建议将不胜感激。我敢肯定有一个简单的解释,但我只是看了太久?

非常感谢

4

1 回答 1

3

您的问题是您在正则表达式语法方面很弱。

试试这个:

var match = /(?:^|\s)line-height\s*:\s*((?:\d*\.)?\d+)em/i.exec( style );

这接受2,.8或之类的数字1.2

于 2013-04-03T17:44:15.967 回答