我有一个计数-不和谐的机器人,它的工作非常好,但我想增加一些特价。用户应该可以使用像+;-;/;*这样的数学表达式,但是我无法得到字符串的结果
例如:console.log(+"14+2")或console.log(Number.parseInt(+"1+3*5-1"))都等于NaN,或者仅仅是第一个数字。
我刚刚在另一个堆叠溢出问题上发现,如果这个数字是真的和假的,但不是结果。
发布于 2022-07-25 16:45:24
你可以直接用math.js
console.log(math.evaluate("14+2"))
console.log(math.evaluate("1+3*5-1"))<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.0.1/math.js"></script>
发布于 2022-07-25 16:56:06
您正在添加字符串并期望得到一个数字结果。不能将像"14 + 2“这样的字符串转换为表达式。
您所描述的方法是有效的,但它们只能将一个字符串转换为一个数字,而不是一个完整的表达式。
所以,你可以这样做:
const result = Number("14") + Number ("2");这实际上与以下内容相同:
const result = +"14" + +"2"或者这个:
const result = Number.parseInt("14") + Number.parseInt("2")但我认为Number()方法比这两种方法都更具可读性。
要将输入输入到正确的语法中,您可能需要使用类似于string.Split()的内容
https://stackoverflow.com/questions/73112591
复制相似问题