判断字符串是像素还是百分比,然后除以2

Tell if string is pixels or percent then divide by two

本文关键字:然后 百分比 字符串 像素 判断      更新时间:2023-09-26

所以我有一个函数,允许用户定义自定义宽度像素或百分比。

问题是我需要得到他们提供的数量的一半。下面是我正在尝试做的一个例子:

用户输入----------预期结果

50%            25%
300px          150px

任何帮助将不胜感激!

这是可行的,尽管您可能应该首先验证他们的输入。

parseInt(str) / 2 + str.match(/(%|px)$/)[0]

在没有验证的情况下,如果输入不是以%px结束(不能做null[0]),则抛出错误。相反,如果您希望将丢失或无法识别的单元默认处理为%,则可以这样做:

parseInt(str) / 2 + (str.match(/(%|px)$/)||["%"])[0]

使用基于regex的String.replace和回调:

"50px".replace(/('d+)(%|px)/, function (_, value, unit) { 
    return String(value / 2) + unit; 
});
// returns 25px