如何使用正则表达式计算器输入与javascript
How to use regular expression for calculator input with javascript?
我正在尝试用JavaScript编写简单的计算器。我想检查用户输入是否正确。我写正则表达式,以确保用户输入是正确的,但它不工作。我想做的是一个简单的规则,即操作符(/*-+)之后应该是操作数(0-9),但第一个操作符可以是-或+。下面的正则表达式不起作用。我错在哪里?
^[-+]?[0-9]{0,}([-+*/]?)[0-9]+$
表达式查找可选的-
或+
,后面跟着零或多个数字([0-9]{0,}
)。我想你可能需要一个或多个(+
)。类似地,([-+*/]?)
中的?
使操作符可选。您可能还想捕获各个部分。
当我在两个操作数之间有一个操作符时,它是好的,但是当我做9+9+9时,它大于2,它不起作用
如果你想允许其他的操作符和数字跟在它们后面,你必须允许后面的部分重复。
这是我的粗略理解:
^'s*([-+]?)('d+)(?:'s*([-+*'/])'s*((?:'s[-+])?'d+)'s*)+$
实时示例(但是如果您有三个或更多术语,则捕获组会发生一些不太正确的事情。)
我所做的改变:
使用
'd
而不是[0-9]
('d
代表"数字")将数字和操作员放在捕获组中
不要让数字或操作符可选
允许空格(
's*
)在不同的位置(?: _________ )+
是让这些父级中的部分重复的。允许在第二组数字前加
-
或+
,但必须在运算符后加空格。
^[-+]?
是正确的,但是
[0-9]{0,}
不是,你想要+量词,如果你使用{0,}(这是相同的*),你可能有"+*9"是正确的。然后,
([-+*/]?)[0-9]+
是错误的,你要:
([-+*/]+[-+]?[0-9]+)*
例如,*-523+4234/-34(可以对负数或正数使用操作数,也可以对不精确的数字使用操作数,这意味着明显是正的)
最后,你会得到这样的东西:
^[-+]?[0-9]+([-+*/]+[-+]?[0-9]+)*$
当然,你可以用'd
相关文章:
- 我怎样才能得到“__类型“;用javascript输入json
- 如何获取javascript输入并在html中调用它
- JavaScript - 输入按钮隐藏 - 不起作用
- 选中复选框时启用Javascript输入类型,未选中复选框则禁用
- JavaScript-输入不是数字时提示
- Javascript:输入框-自动大写第一个字母,但可以重写
- Javascript输入格式
- 来自键盘的JavaScript输入没有“prompt()”方法弹出窗口(如Pascal Readln或GWiBasic输
- JavaScript 输入值问题
- Javascript输入更改
- Javascript输入问题
- JavaScript 输入字段不可编辑
- 动态生成的 Javascript 输入字段无法被 Httpservletrequest 识别???仅在 Chrome 中
- JavaScript 输入标签未设置 ID 或类
- JavaScript 输入字段验证
- 如何使用 javascript 输入 2 个框
- 直接从Javascript输入/传递图像到输入类型=“文件名”
- 如何显示双引号以通过javascript输入
- HTML5/Javascript 输入只读状态在 IOS 上使用 XCode 滑动
- Javascript 输入到 HTML 表单 onSubmit 与 # 操作到 PHP $_GET(同一文件上的所有代码