求用于解析CSS font-size属性的正则表达式方案
解析CSS font-size的正则表达式方案
针对你需要匹配的15px、15.23em这类font-size格式,这里提供一个精准的正则表达式,同时能提取数值和单位:
^(\d+\.?\d*)(px|em|rem|pt)$
正则各部分说明
^和$:锚定字符串的开头和结尾,确保只匹配完整的font-size值,避免部分匹配(比如不会误匹配15pxabc这类无效内容)(\d+\.?\d*):捕获数值部分\d+:匹配至少一位整数\.?:匹配可选的小数点(支持整数和带小数的数值)\d*:匹配小数点后任意数量的数字(可以没有)
(px|em|rem|pt):捕获单位部分,精准匹配你指定的几种常用字体单位
使用示例(以JavaScript为例)
const regex = /^(\d+\.?\d*)(px|em|rem|pt)$/; // 测试目标字符串 const samples = ['15px', '15.23em', '234.43rem', '12.342pt']; samples.forEach(item => { const result = item.match(regex); if (result) { console.log(`配对结果:(${result[1]}, ${result[2]})`); } });
扩展说明
如果需要支持更多CSS字体单位(如vw、vh、%、pc等),只需扩展单位分组即可:
^(\d+\.?\d*)(px|em|rem|pt|vw|vh|%|pc)$
另外,若需要支持.23px这种以小数点开头的数值(CSS语法允许但较少见),可以将数值部分调整为(\d*\.?\d+):
^(\d*\.?\d+)(px|em|rem|pt)$
内容的提问来源于stack exchange,提问作者Mr.Price
相关产品推荐
相关产品推荐

