在开始之前,请不要告诉我不要使用eval
;我知道输入非常卫生,所以它安全,快速,简单。
我正在使用JavaScript引擎为我用Java编写的计算器提供动力。为此,我只需将输入连接到一个字符串并将其传递给JavaScript。例如,点击按钮1
,+
和5
会导致构建字符串"1+5"
。我通过将0x
放在字母前面来使用十六进制,因此A
,+
和8
会给我"0xA+8
。我的问题来自编程其二进制模式。我尝试传递它0b1101+0b10
(这是Java如何处理二进制文字),但它只是抛出一个错误。 如何在JavaScript中处理二进制文字?
答案 0 :(得分:2)
您需要预先处理它们。 parseInt()
是最好的选择。
var number = parseInt(binaryStr, 2);
如果将用户输入直接传递给eval()
,则提示。使用正则表达式确保输入仅包含数字和您期望的运算符(+
,-
等)。