【发布时间】:2019-09-20 05:56:29
【问题描述】:
我有一个函数,它可以接受一个字符串,将其解释为计算并返回计算结果,有效计算的示例是:
3(log(e+pi^(22/3)))
44+3*(pi+2)/root(7)
该函数非常繁重,因此我只想在字符串实际上是计算时才运行它。在添加 log 和 root、pi 和 e 以及隐式乘法等函数之前,我使用了以下正则表达式:
/^((-?([0-9]+?\.)?[0-9]+?)\s?([+\-*\/%^]|(\*\*))\s?)+?(-?([0-9]+?\.)?[0-9]+?)$/
这不再起作用了。在这一点上,我什至不确定正则表达式是否对性能有意义。我预计大约 0.1% 的字符串匹配(这是一个有效的计算)。
您对如何创建一个表现良好的常客有任何想法吗? 表达式(函数本身确定天气它是有效的 计算本身,但是需要很长时间,所以没有100%的准确率 需要)或验证计算的函数?
【问题讨论】:
标签: javascript regex