当前位置:  开发笔记 > 编程语言 > 正文

string => JS中的数字转换

如何解决《string=>JS中的数字转换》经验,为你挑选了1个好方法。

我有一个URL,我在哈希之后解析.哈希之后的内容是一个数学方程式(例如http://example.com/something#5+1),我想找到它的总和(或任何其他方程的结果,如产品,部门等)

我可以使用以下方法检索数字:

var url = (window.location.hash).substr(1) // returns "5+1" as a string

虽然我发现如果我尝试将其转换为数字,它实际上并没有进行数学计算.它将其减少到5,而不是显示8的总和.

这种转换可能吗?

谢谢!



1> Eli Grey..:

不要eval()使用URL中的任意代码,因为它可以很容易地被用于XSS.我创建了一个名为JSandbox的库,可以对JavaScript代码执行进行沙箱化,但它需要对Web worker的支持.对IE使用假工作者支持不是一个好主意,因为沙盒的安全性已经消失.

您的代码如下:

JSandbox.eval("with(Math){" + location.hash.substr(1) + "}", function (res) {
  // handle the results here
});

用它来处理错误:

JSandbox.eval("with(Math){" + location.hash.substr(1) + "}", function (res) {
  // handle the results here
}, null, function (err) {
  // handle errors here
});

我包含了一个with (Math) { ... }包装器,因此哈希代码可以访问Math函数.(例如,abs(..)代替Math.abs(..))

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有