UNPKG

mm_maths

Version:

这是一个可以将数学公式推导变形,并转成js和计算的模块。

47 lines (43 loc) 1.26 kB
const four_run = require('../../convert/four_run'); /** * 去括号(未完成) * @param {string} 公式 * @return {string} 返回计算结果 */ module.exports = function brackets(express) { express = express.replace(/ /g, ''); var exp = express; if (exp.indexOf('(') !== -1) { exp = exp.between('(', ')'); if (exp.indexOf('(') !== -1) { exp = exp.right('('); } var ret = four_run(exp); var key = "(" + exp + ")"; if (express.indexOf("-" + key) !== -1) { ret = ret.replace(/\-/g, "~").replace(/\+/g, "-").replace(/\~/g, "+"); express = express.replace(key, ret); } else if (express.indexOf("/" + key) !== -1) { if(ret.indexOf('+') === -1 && ret.indexOf('-') === -1){ ret = ret.replace(/\*/g, "`").replace(/\//g, "*").replace(/\`/g, "/"); express = express.replace(key, ret); } else { // 与相除相乘 } } else if (express.indexOf("*" + key) !== -1) { if(ret.indexOf('+') === -1 && ret.indexOf('-') === -1){ express = express.replace(key, ret); } else { // 与外界相乘 } } else { express = express.replace(key, ret); } } if (express.indexOf('(') !== -1) { express = brackets(express); } return four_run(express); };