2012-04-23 69 views
1

如何串公式转换为数字在JavaScript?如何将字符串公式转换为javascript中的数字?

说我有“100 * 100”或“100×100”我怎么评价这一点,转换为数字?

+3

这是功课?你试过什么了? – JohnFx 2012-04-23 18:48:10

+2

这不是功课,我试图批量直接在用户输入转换成longforms从速记。我试过eval()和parseInt和parseFloat。 – 2012-04-23 18:49:16

回答

5

这将字符串是否使用*x给你的产品:

var str = "100x100"; 

var tmp_arr = str.split(/[*x]/); 
var product = tmp_arr[0]*tmp_arr[1]; // 10000 
+1

这正是我在寻找的感谢。 – 2012-04-23 19:03:11

+0

http://jsfiddle.net/jlaceda/hcDra/例如在一个功能测试。 – jlaceda 2012-04-23 19:12:08

+0

@Event_Horizo​​n不客气:) – Paulpro 2012-04-23 20:01:48

4

如果你确定字符串总是像“100 * 100”那样你可以eval()它,尽管大多数人会告诉你这不是一个好主意,因为人们可以通过恶意代码被评估。

eval("100*100"); 
>> 10000 

否则,您将不得不查找或编写自定义公式分析器。在这种情况下,你可能想看看Shunting-yard algorithm,并在parsing阅读起来。


使用split()

var myEquation = "100*100"; 
var num = myEquation.split("*")[0] * myEquation.split("*")[1]; 
>> 10000 
+0

有没有办法通过x和数字分裂了,繁衍只是数字?为此将分裂工作? – 2012-04-23 18:52:35

+0

是的,我会更新。 – 2012-04-23 18:53:14

0

使用parseInt函数(),该parseInt函数()函数解析一个字符串并返回一个整数。

 parseInt("100")*parseInt("100") //10000 
相关问题