当前位置: 首页 > 知识库问答 >
问题:

如何使用javascript为负数或正数十进制值编写regex[重复]

郝永思
2023-03-14
 onlyDecimalNumberKey(event) {
    
    const pattern = /^-?[0-9]\d*(\.\d+)?$/;
    let inputChar = String.fromCharCode(event.charCode);
    if (event.keyCode != 8 && !pattern.test(inputChar)) {
      event.preventDefault();
    }
    
  }
html lang-html prettyprint-override"><input click="onlyDecimalNumberKey($event)">

我有一个输入字段,它应该是允许在第一位要么减或无(不加字符)。从第二位的字,它需要允许数字或点如下。

例如:-0.234、12.0344、-123.0042、1.345、-2.0034、1234.0344,

共有1个答案

谭锐藻
2023-03-14

评论regex工作得很好!

js prettyprint-override">function onlyDecimalNumberKey() {
    const pattern = /^-?[0-9]\d*(\.\d+)?$/;
    let inputChar = event.target.value;
    
    if (event.keyCode != 8 && pattern.test(inputChar)) {
      console.log(inputChar, ": valid");
      event.preventDefault();
    } else {
    console.log(inputChar, ": invalid")
    }
    
  }
<html>
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="style.css">
  </head>
  <body>
    <div>
      <input onChange="onlyDecimalNumberKey()">
    </div>
  </body>
</html>
 类似资料:
  • 我需要一个带有2个小数的5位数整数的regex。 null null

  • 用户用十六进制或二进制输入一个数字(必须以0x或0b为前缀,如果没有给出错误信息) 我不能用基数,我只是用整数。parseInt(s) 我不知道怎样才能使这个计划奏效。。请帮帮我,我还缺什么?

  • 问题内容: 我使用python 2.6 正值和负值相同吗? 当我使用calc时,值为。 问题答案: Python的整数可以任意增大。为了按您希望的方式计算原始二进制补码,您需要指定所需的位宽。您的示例以64位二进制补码显示,但也可能是32位或128位,因此开始时会产生不同数量的。 不这样做。我建议以下方法: 打印输出:

  • 我试图找到一种快速/简单的方法,将二元补码字符串转换为负十进制数。我曾尝试使用这个问题中提出的方法,但它不起作用。这是我正在尝试运行的代码: 当我运行此代码时,结果是9。我错过了什么吗?我做错了什么?

  • 问题内容: 我想知道如何在Python中将小数转换为最低形式的分数。 例如: 问题答案: 您有两种选择: 用途: (1, 4) (从Python 3.6开始,您可以对对象执行相同的操作。) 使用类型: Fraction(0.25) Fraction(1, 4) 后者具有非常有用的转换: 由于浮点值可能不精确,因此您可能会得到“奇怪”的分数;限制分母以某种程度“简化”分数,方法是: 如果您仍在使用P