求关于解析四则运算公式中所有变量的正则表达式?

let formula = '(@money+@tax)/@water_fee*100-(@fee5+@fee4)'

怎么用正则去匹配@符号后边的变量得到变量数组:

['@money','@tex','@water_fee','@fee5','@fee4']
阅读 2.5k
3 个回答

可以直接用matchAll, 或者match:

let variables = [...formula.matchAll(/@\w+/g)].map(item => item[0]);
let variables2 = formula.match(/@\w+/g);

希望能帮助到你。

var formula = '(@money+@tax)/@water_fee*100-(@fee5+@fee4)'
var reg = /@(.*?)[+-/*(\)]/g, b, list=[];
while(true) { 
    b = reg.exec(formula);
    if (!b) break;
    list.push(b[1]);
}
console.log(list)
    
    let formula = '(@money+@tax)/@water_fee*100-(@fee5+@fee4)';
    const reg = /(@\w+)/g
    console.log(formula.match(reg));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题