我有一个包含多个段落的html文件,每个段落都有px
中的顶部和左侧标签。我正在尝试使用正则表达式将此数字转换为百分比。我的页面宽度和高度分别为500px
和1000px
。例如,此文本:
<p "position:absolute;left:200px;top:200px"></p>
我希望结果是:
<p "position:absolute;left:40%;top:20%"></p>
答案 0 :(得分:0)
您可以通过正则表达式捕获模式,但无法通过它们完成计算。
在您的情况下,您可以使用正则表达式,例如
<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);