JavaScript函数添加一串数字

时间:2009-03-27 00:48:58

标签: javascript

不确定如何说出这一点,因此在Google搜索中没有太多运气......

我需要计算一串数字的值。

实施例。 用户在文本字段中键入“1.00 + 2.00 - 0.50”。该函数应该能够获取该字符串并计算结果以返回$ 2.50。

任何人都有办法在他们的技巧包里做到这一点吗?

3 个答案:

答案 0 :(得分:4)

如果它实际上是一个数学运算,你可能只是使用eval,但不确定你想要的是什么:

document.write(eval("1.00 + 2.00 - 0.50"));

答案 1 :(得分:2)

Theo T的答案看起来是最直接的方式,但是如果你需要编写自己的简单解析器,你可以从splitting字符串开始,在输出中查找你的运算符。

答案 2 :(得分:0)

只是为了改善Theo的答案。

除非您完全确定要传递给该功能的内容,否则不应使用eval。由于eval将运行代码,因此您可以编写任何JavaScript代码并执行它。

确保只获得正确代码的方法之一是使用以下脚本:

var str = "$34.00 + $25.00 alert('some code')"; // Our string with code
var pattern = /[0-9\+\-\.\*\/]*/g; // Regex pattern
var math_operation = str.match(pattern).join(''); // Getting the operation
document.write(eval(math_operation));​ // Getting the result

这不仅允许用户输入$34.00 + $5.00之类的内容,还可以防止代码被注入。