Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式计算文本中的数字_Javascript_Regex_String_Replace_Eval - Fatal编程技术网

Javascript 使用正则表达式计算文本中的数字

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> 您可以通过正则表达式捕获模式,但不能通过它们进

我有一个包含多个段落的html文件,每个段落都有一个位于
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(),但它不起作用。请查看已编辑的部分。你可以在此基础上继续努力。