我正在开发一个JavaScript,我有字符串:
var raw = "123 + 32 − 65";
我正在尝试构建一个计算器,但我正试图找出最佳起点。我应该把它分成一个数组吗?
var split = raw.split(" ");
// ['123', '+', '32', '−', '65']
然而,这将是一大堆if语句。
给定此字符串创建计算器解析器的最佳逻辑方法是什么?
答案 0 :(得分:0)
这是一个可以使用eval的地方。确保您清理输入,并注意它只适用于有效的JavaScript。或者编写自己的解析器。
答案 1 :(得分:0)
你需要处理ASCII值,如果每个子串('...'.charCodeAt(0);
)的第一个字符的ASCII值在48和57之内,那么你知道是一个数字,你必须parseInt('...')
。对于符号ascii代码是:
'*'.charCodeAt(0); //returns 42
'+'.charCodeAt(0); //returns 43
'-'.charCodeAt(0); //returns 45
'/'.charCodeAt(0); //returns 47
试试吧。对不起,我没有进一步使用代码,我正在使用手机。无论如何,希望它有所帮助!