为了账号安全,请及时绑定邮箱和手机立即绑定

js正则替换

js正则替换

梦里花落0921 2018-10-24 09:03:24
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,换成后面对象的数字。
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

用正则匹配一下就出来了

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


查看完整回答
反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 497 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信