Javascript 使用正则表达式计算文本中的数字
我有一个包含多个段落的html文件,每个段落都有一个位于Javascript 使用正则表达式计算文本中的数字,javascript,regex,string,replace,eval,Javascript,Regex,String,Replace,Eval,我有一个包含多个段落的html文件,每个段落都有一个位于px中的顶部和左侧标记。我试图用正则表达式把这个数字转换成百分比。我的页面宽度和高度分别为500px和1000px。例如,对于本文本: <p "position:absolute;left:200px;top:200px"></p> 我希望结果是: <p "position:absolute;left:40%;top:20%"></p> 您可以通过正则表达式捕获模式,但不能通过它们进
px
中的顶部和左侧标记。我试图用正则表达式把这个数字转换成百分比。我的页面宽度和高度分别为500px
和1000px
。例如,对于本文本:
<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=';
模式=/\d+/g;
函数替换程序(匹配){
匹配=(匹配/500)*100+'%';
复赛;
}
str=str.replace(模式,replacer);
str=str.replace(/px/g');
console.log(str)代码>谢谢。但是我正在寻找正则表达式方法谢谢你的回答。使用这段代码,我可以将顶部和左侧的数字分别捕获为$1和$2。我怎样计算呢。我尝试了eval(),但它不起作用。请查看已编辑的部分。你可以在此基础上继续努力。