gpt4 book ai didi

javascript - css 字体声明的正则表达式

转载 作者:行者123 更新时间:2023-11-28 12:13:26 25 4
gpt4 key购买 nike

这是css中的字体声明:

font: bold italic small-caps 1em/1.5em verdana,sans-serif;

这是一个用于获取 px 值的正则表达式:

value.match(/(normal|italic)?\s*(normal|small-caps)?\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\s*(\d+)px(?:\/(normal|[\d\.]+))?\s+(.*)/);

并帮助我得到这个:

  var fontStyle = match[1],
// font variant is not used
// fontVariant = match[2],
fontWeight = match[3],
fontSize = match[4],
lineHeight = match[5],
fontFamily = match[6];

我想解析字体大小或行高的任何值,而不仅仅是 px,但是

[px|cm|mm|em|pt|pc|in]

但我无法修改它。有人可以帮忙吗?

最终结果:

(normal|italic)?\s*(normal|small-caps)?\s*(normal|bold|bolder|lighter|100|200|30‌​0|400|500|600|700|800|900)?\s*(\d+(?:px|cm|mm|em|pt|pc|in)*)(?:\/(normal|[\d\.]+)‌​)?\s+(.*) 

最佳答案

不要使用正则表达式解析 CSS。相反,让引擎去做——它已经完美地知道该怎么做!!

var elt = document.createElement('div');
elt.style.font = '1em sans-serif';
// individual properties can now be accessed as elt.style.fontFamily etc.

['fontFamily', 'fontSize'].forEach(function(x) {
document.writeln(x, " is ", elt.style[x], ". "); });

但是,要使其正常工作,font 规范的格式必须正确(以正确的顺序)。参见 https://developer.mozilla.org/en-US/docs/Web/CSS/font .

关于javascript - css 字体声明的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26605584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com