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

时间:2013-03-01 18:43:11

标签: javascript jquery

所以我有一个功能,允许用户将自定义宽度定义为像素或百分比。

问题是我需要获得他们提供的一半数量。以下是我要做的一个例子:

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

50%            25%
300px          150px

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

虽然你应该首先验证他们的输入,但这很有效。

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

如果输入未以%px结尾(无法执行null[0]),则不进行验证会引发错误。如果您希望默认情况下将缺失或无法识别的单位视为%,则可以执行以下操作:

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

答案 1 :(得分:1)

将基于正则表达式的String.replace与回调结合使用:

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