2014-05-16 22 views
1

对不起,如果问题的措辞不好,但我想问的是,你会如何替换JS中的字符串的子串与两个捕获的组的产品?要看我的意思,看看下面的行。我将如何执行任务类似如下:如何用值替换字符串中的表达式?

expression.replace(regexp,parseFloat("$1")*parseFloat("$3")); 

当“正则表达式”是/(\d+(\.\d+)?)\*(\d+(\.\d+)?)/和“表达”是"20*5"

它不起作用,我不确定为什么。 expression.replace(regexp,"$1_$3")打印出20_5,所以为什么把"$1""$3"parseFloat()改变它们的值从第一和第三组的值的字符串"$1""$3"

如果您想知道,这是网站GraphWidget作为PLTW类的STEM项目。

谢谢。

+0

这是一个字符串替换,是什么让你觉得你可以把数字和分析方法,在那里,而不仅仅是字符串。 – adeneo

+0

would not eval(“20 * 5”)给你你在找什么? – Dalorzo

+2

您需要传递回调。 – SLaks

回答

2

没有区别,如果你这样做,我认为:

"20*5".split('*').reduce(function(a,c){ 
    return a <=0? c : a*c 
},0); 

这种方法的优点是,它也将与"20*5*3"工作,而无需更改代码

免责声明:我知道你可能想用正则表达式来解决你的问题。我只是提供了一个问题的侧面图。

+2

谢谢。这是解决它的一个有趣的方法 –