我一直在挠头,四处搜寻,我似乎无法找到另一个问题,就像我遇到的问题一样。
我有一个变量,例如:
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);
但是当我尝试提取行高的值(使用相对的大小调整)时,我会遇到各种问题(主要是由于小数位):
玩了很长一段时间之后,这是我能找到解决方案的最接近的地方:
var match = /(?:^|\s)line-height\s*:\s*(\d|\.|\d*)em/i.exec( style );
lineheighttest = match && match[1];
console.log(lineheighttest);
但这不会返回我的1.4值
非常感谢任何指导我正确方向的想法或建议。我确信有一个简单的解释,但我已经看了太久了?
非常感谢
答案 0 :(得分:3)
你的问题是你在正则表达式语法方面很弱。
试试这个:
var match = /(?:^|\s)line-height\s*:\s*((?:\d*\.)?\d+)em/i.exec( style );
这会接受像2
,.8
或1.2
这样的数字。