javascript – 使用正则表达式将“pt”转换为“px”

前端之家收集整理的这篇文章主要介绍了javascript – 使用正则表达式将“pt”转换为“px”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在WYSIWYG编辑器中,我有
<TABLE style="WIDTH: 162pt; BORDER-COLLAPSE: collapse" border=0 cellSpacing=0 cellPadding=0 width=216>

我可以将其转换为

<TABLE style="WIDTH: 162px; BORDER-COLLAPSE: collapse" border=0 cellSpacing=0 cellPadding=0 width=216>

运用

"wysiwygdata".replace(/pt/g,"px");

有没有办法使用正则表达式将pt的关联值更改为px的值.

162pt可能是162 * 96 / 72px.

寻求你的帮助.

解决方法

您可以使用正则表达式,将函数提供给String#replace:
s = /* ...the data... */;
s = s.replace(/([0-9]+)pt/g,function(match,group0) {

    return Math.round(parseInt(group0,10) * 96 / 72) + "px";
});

Live example

当你为replace的第二个参数提供一个函数时,它会被调用每个匹配,完整匹配作为第一个参数,然后是后续参数的任何捕获组的值;返回值用作替换值.所以上面我使用捕获组捕获数字,然后进行数学运算并返回新字符串.

您可能需要或想要调整正则表达式以确保它适合您的数据(数字和单位之间可能的空格,可能是i标志,因此它匹配“PT”以及“pt”等),但是这是基本方法.

原文链接:https://www.f2er.com/js/155951.html

猜你在找的JavaScript相关文章