我正在构建一个普通的JS计算器,并尝试使用regex .test()函数来限制用户连续多次使用运算符
即2 ++++ 3
它被构造为if else语句,问题在于regex测试是第一次运行,但是第二次失败,因此导致代码在不应该运行时跳转到else语句。我的正则表达式错了吗?我使用了错误的函数来运行比较吗?
var testOperands = /[+-/*=]/g;
switch (x) {
case "+":
if(testOperands.test(currentEntry[0])){
currentArea.textcontent = x;
totalArea.textContent = totalArea.textContent + "";
} else {
currentArea.textContent = x;
totalArea.textContent = (totalArea.textContent + x);
currentEntry = ["+"];
totalEntry.push(x);
}
break;
case "-":
if(currentEntry[0] === "-"){
currentArea.textcontent = x;
} else {
currentArea.textContent = x;
totalArea.textContent = (totalArea.textContent + x);
currentEntry = ["-"];
totalEntry.push(x);
}
break;
这是完整的代码:https://codepen.io/brianofblades/pen/KQWVYN
最佳答案
您的正则表达式无效,需要对-
进行转义:[+\-\/*=]
关于javascript - 为什么.test()函数对onclick行为不可靠?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48708300/