js正则替换

let k1 = kpi1 + kpi2 + (kpi3 - kpi4) * kpi5;   => {kpi1:1,kpi2:12,kpi3:2,kpi4:23,kpi5:78}
let k2 = kpi1 - (kpi2 * kpi3);            => {kpi1:1,kpi2:12,kpi3:2,}
let k3 = kpi1 * kpi2 / kpi3;    => {kpi1:1,kpi2:12,kpi3:2}
如上:上面不同三个公式,举例而已,都是用户自己随机输入任意一种,无数种情况,但是只能有加减乘除括号组合,后面是每种需要替换公式中的的数据,怎么把对应的kpi,换成后面对象的数字。


梦里花落0921
浏览 498回答 1
1回答

HUX布斯

用正则匹配一下就出来了const k1 = 'kpi1 + kpi2 + (kpi3 - kpi4) * kpi5';const obj = {kpi1:1,kpi2:12,kpi3:2,kpi4:23,kpi5:78};let k2 = k1.replace(/kpi[0-9]+/g,function(){  return obj[arguments[0]] })console.log(k2) // '1 + 12 + (2 - 23) * 78'console.log(eval(k2)) // -1625
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript