单击除数字之外的任何内容后,我的输入框会重置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击除数字之外的任何内容后,我的输入框会重置相关的知识,希望对你有一定的参考价值。

所以我建立一个计算器。我遇到的问题是,当我点击计算符号然后我输入更多数字时,计算符号会附加到值的前面。

如何重置输入框以便一旦我点击一个数字,计算符号就会消失并开始一个新的数字列表 - 请参阅下面的一些代码

if (!isNaN(e.target.textContent)) {
      inp.value += parseInt(e.target.textContent);
      val1 = inp.value;
      console.log(val1);
    } else if (
      isNaN(e.target.textContent) &&
      e.target.textContent !== "ENTER"
    ) {
      calculationSign = e.target.textContent;
      inp.value = e.target.textContent;
      console.log(calculationSign);
    } 
答案

要回答您的问题,您可以测试输入框当前是否由操作员提供:

if (!isNaN(e.target.textContent)) {
    if (['+', '-', '*', '/'].indexOf(inp.value) !== -1) {
        inp.value = ''
    }
    inp.value += parseInt(e.target.textContent);
    val1 = inp.value;
    console.log(val1);
}

无论如何,在使用ENTER触发计算之前,您需要更多的状态和逻辑来确定用户何时输入第二个值,但也许它在您的实际代码中的其他位置。

以上是关于单击除数字之外的任何内容后,我的输入框会重置的主要内容,如果未能解决你的问题,请参考以下文章

需要一个正则表达式来删除除数字之外的所有内容

用于定位回车换行符的正则表达式后跟除 8 位数字和 | 之外的任何内容

删除除 0-9 + - / * 和 ^ 之外的任何字符 [重复]

Win10正式版除Edge之外 IE等浏览器无法上网的解决办法

RegEx 用于匹配除逗号分隔的数字之外的所有字符

Powershell - 删除除最高数字之外的所有内容