如何将二进制文字传递给 JavaScript eval
How do I pass a binary literal to JavaScript eval?
在我开始之前,请不要告诉我不要使用eval
;我知道输入非常卫生,因此安全、快速且简单。
正在使用JavaScript引擎来为我用Java编写的计算器提供动力。为此,我只需将输入连接成一个字符串并将其传递给 JavaScript。例如,单击1
、+
和 5
按钮会导致生成字符串"1+5"
。我也通过在字母之前放0x
来为十六进制工作,所以A
、+
和8
给了我"0xA+8
。我的问题来自编程它的二进制模式。我尝试将其传递0b1101+0b10
(这是Java进行二进制文字的方式),但它只是抛出了一个错误。如何在 JavaScript 中处理二进制文字?
更新:从 ES2015 开始,JavaScript 支持二进制Number
文字:
console.log(0b1101+0b10) // 15 (in decimal)
或者,您可以使用字符串,并使用以 2 为基数的 Number.parseInt
:
var a = parseInt('1101', 2) // Note base 2!
var b = parseInt('0010', 2) // Note base 2!
console.log(a+b) // 15 (in decimal)
为了以不同的基数显示数字,Number#toString
也接受一个基数:
(15).toString(2) // 1111
注意:如果将用户输入直接传递给eval()
,请使用正则表达式来确保输入仅包含数字和您期望的运算符(+
、-
等)。
相关文章:
- Javascript eval()无法处理传递的字符串
- Semi-sandboxing Javascript eval
- javascript eval方法语法
- JavaScript eval() and const
- mongo javascript --eval is failing
- Javascript eval查询字符串
- javascript eval删除问号后的所有内容
- Javascript eval(0047) returns 39
- Javascript eval - obfuscation?
- JavaScript eval in JavaApplication: "javax.script.scrip
- JavaScript eval(“{}”) 返回行为
- 获取 eval 的“窗口”对象,并列出所有变量?Javascript eval inline html.
- 如何将二进制文字传递给 JavaScript eval
- 你如何让 javascript eval 返回一个字符串而不是一个变量
- Javascript eval() for Json 字符串注入了全局作用域函数
- JavaScript eval() 失败与 window.external.notify(),适用于 window.al
- Javascript eval 在计算数学表达式时,如果使用的数字以 0 开头,则给出错误的输出
- Javascript - eval() `{}` expression
- 如何避免此javascript eval()
- 客户端上用于运行不受信任代码的JavaScript eval()