gpt4 book ai didi

javascript - 如何使用正则表达式在 javascript 中输入计算器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:47:11 27 4
gpt4 key购买 nike

我正在尝试用 JavaScript 编写简单的计算器。我想检查用户输入是否正确。我写了正则表达式以确保用户输入正确,但它不起作用。我想做的是一个简单的规则,即运算符 (/*-+) 后面应该跟操作数 (0-9),但第一个运算符可以是 - 或 +。下面的正则表达式不起作用。我的错误是什么?

^[-+]?[0-9]{0,}([-+*/]?)[0-9]+$

最佳答案

您的表达式查找可选的 -+ 后跟 或更多数字 ([0-9]{0 ,}).我认为您可能想要一个或多个 (+)。同样,([-+*/]?) 中的 ? 使运算符可选。您可能还想捕获各个部分。

It is fine when I have something one operator between two operand but when I do 9+9+9 which is more then two it is not working.

如果你想允许后面有额外的操作符和数字,你必须允许后面的部分重复。

这是我的粗略看法:

^\s*([-+]?)(\d+)(?:\s*([-+*\/])\s*((?:\s[-+])?\d+)\s*)+$

Live Example (但如果您有三个或更多项,则捕获组会发生一些不太正确的事情。)

我所做的更改:

  1. 使用 \d 而不是 [0-9](\d 代表“数字”)

  2. 将数字和运算符放在捕获组中。

  3. 不要让数字或运算符可选。

  4. 允许在不同的地方使用可选的空格 (\s*)。

  5. (?: _________ )+ 让括号内的部分重复。

  6. 允许在第二组数字前面使用 -+,但前提是在运算符后面有一个空格。

关于javascript - 如何使用正则表达式在 javascript 中输入计算器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24234265/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com