前言
在开发微信小程序的时候, 或多或少会遇到需要批量将px转换rpx的场景。如果手动一个一个的改,太费时间了。所以我们可以使用正则表达式批量的进行转换。
在线转换
楼主周末花了点时间,写了一个在线转换的小工具,有需要的可以直接访问就好了。
代码实现
下面的转换比例我是以iPhone6为基准进行转换的。
var text = "height: 54px;width:35px;font-size:16rpx";
var reg = /(:\s*)(\d+)px/gi;
var match = text.match(reg);
text = text.replace(reg, (match, $1, $2) => {
var value = parseFloat($2) * 2;
return `${$1}${value}rpx`;
});
# 输出:height: 104rpx;width:70rpx;font-size:16rpx
扩展
rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
| 设备 | rpx换算px (屏幕宽度/750) | px换算rpx (750/屏幕宽度) |
|---|---|---|
| iPhone5 | 1rpx = 0.42px | 1px = 2.34rpx |
| iPhone6 | 1rpx = 0.5px | 1px = 2rpx |
| iPhone6 Plus | 1rpx = 0.552px | 1px = 1.81rpx |