JavaScript字符串解析器计算器

时间:2014-04-10 23:27:48

标签: javascript

我正在开发一个JavaScript,我有字符串:

var raw = "123 + 32 − 65";

我正在尝试构建一个计算器,但我正试图找出最佳起点。我应该把它分成一个数组吗?

var split = raw.split(" ");
// ['123', '+', '32', '−', '65']

然而,这将是一大堆if语句。

给定此字符串创建计算器解析器的最佳逻辑方法是什么?

2 个答案:

答案 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

试试吧。对不起,我没有进一步使用代码,我正在使用手机。无论如何,希望它有所帮助!