繁体   English   中英

在JavaScript中,如何从像素值(例如2em或20px)获取单位(例如em或px)?

[英]In javascript, how to get the unit (e.g. em or px) from a pixel value (e.g. 2em or 20px)?

我正在尝试编写一个将值作为填充输入的函数,请参见以下简化示例:

function createBlocks(container,padding) {}

我希望padding参数为任何值(em,px等)。 因此,我需要能够提取值和单位。

我可以使用以下方法提取值: var paddingVal = parseFloat(padding);

但是我不知道如何提取单位价值...

有任何想法吗?

您可以使用.replace()

var paddingVal = parseFloat(padding);
var Newpadding = padding.replace(paddingVal , '');
alert(Newpadding);

更清楚..可能您需要先替换空格

var paddingWithoutSpaces = padding.replace(/\s/g, '+');
var paddingVal = parseFloat(padding);
var Newpadding = padding.replace(paddingVal , '');
alert(paddingVal);
alert(Newpadding);

使用正则表达式

 function createBlocks(padding) { var matches = padding.match(/(\\d+)(.+)/), value = parseFloat(matches[1]), unit = matches[2]; console.log('value: %d, unit: %s', value, unit); } createBlocks('3px'); // value: 3, unit: px createBlocks('12rem'); // value: 12, unit: rem 

这也是一个也可以使用十进制值的版本:

var getUnitValue = function (valueStr) {
    var result = {};
    result.value = parseFloat(valueStr);
    result.unit = valueStr.substr(('' + result.value).length).trim();
    return result;
};

getUnitValue('80.2 px'); // --> {value: 80.2, unit: "px"}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM