还有一个纯JS的字符替换函数,如果不用插件,但我觉得插件方便些下面是纯JS的替换函数
/**
* 公式关键字替换 - 核心函数
* @param {string} formula 原公式
* @param {string} rules 关键字规则(格式:"key1:value1,key2:value2")
* @returns {string} 替换后的公式
*/
function replaceFormulaKeywords(formula, rules) {
if (!formula || !rules) return formula;
let result = formula;
rules.split(',').forEach(rule => {
rule = rule.trim();
if (!rule) return;
const colonIndex = rule.indexOf(':');
if (colonIndex === -1) return;
const key = rule.substring(0, colonIndex).trim();
const value = rule.substring(colonIndex + 1).trim();
if (key && value) {
result = result.split(key).join(value);
}
});
return result;
}
/*
// 测试
const testResult = replaceFormulaKeywords(
"取整((总宽+16+总高-离地)/2)-5+行高",
"总高:2000,总宽:1000,离地:10,取整:Math.ceil,中板:12"
);
console.log("转换结果:", testResult); // Math.ceil((1000+16+2000-10)/2)-5+行高
*/ |