如何将二进制文字传递给JavaScript eval?

时间:2013-09-30 20:17:09

标签: java javascript binary eval literals

在开始之前,请不要告诉我不要使用eval;我知道输入非常卫生,所以它安全,快速,简单。

我正在使用JavaScript引擎为我用Java编写的计算器提供动力。为此,我只需将输入连接到一个字符串并将其传递给JavaScript。例如,点击按钮1+5会导致构建字符串"1+5"。我通过将0x放在字母前面来使用十六进制,因此A+8会给我"0xA+8。我的问题来自编程其二进制模式。我尝试传递它0b1101+0b10(这是Java如何处理二进制文字),但它只是抛出一个错误。 如何在JavaScript中处理二进制文字?

1 个答案:

答案 0 :(得分:2)

您需要预先处理它们。 parseInt()是最好的选择。

var number = parseInt(binaryStr, 2);

如果将用户输入直接传递给eval(),则提示。使用正则表达式确保输入仅包含数字和您期望的运算符(+-等)。