使用正则表达式对文本中的数字进行计算

do calculation on numbers in text using regex

我有一个包含多个段落的 html 文件,每个段落都有一个位于 px 中的顶部和左侧标签。我正在尝试使用正则表达式将此数字转换为百分比。我的页面宽度和高度分别是 500px1000px。例如这个文本:

<p "position:absolute;left:200px;top:200px"></p>

我想要的结果是:

<p "position:absolute;left:40%;top:20%"></p>

您可以通过正则表达式捕获模式,但无法通过它们进行计算。

在你的情况下,你可以使用像

这样的正则表达式
<p.*left:(\d{1,3})px;top:(\d{1,3}).*p>

此正则表达式将吐出 2 个与捕获的数字匹配的结果。您现在可以转换它们并使用捕获的组编号进行替换。

或者您可以简单地使用回调来替换方法

str = '<p "position:absolute;left:200px;top:200px"></p>';
pattern = /\d+/g;
function replacer(match) {
 match = (match/500)*100 + '%';
  return match;
}
str = str.replace(pattern, replacer);
str = str.replace(/px/g, '');
console.log(str);