【问题标题】:Allow negative decimal numbers允许负十进制数
【发布时间】:2015-06-27 01:49:53
【问题描述】:

我有一个验证功能,只允许 2 位小数。但目前它不接受负数。下面是我的代码。我如何允许负数和正数最多只有 2 位小数?

  function twodecimalplace(e) {
    var val = this.value;
    var re = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)$/g;
    var re1 = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)/g;
    if (re.test(val)) {
        //do something here

    } else {
        val = re1.exec(val);
        if (val) {
            this.value = val[0];
        } else {
            this.value = "";
        }
    }
 }

【问题讨论】:

  • 为什么不用jstoFixed()方法???
  • 如果还有两位小数,你会怎么做?抛出错误或者你会跳过它?
  • @A.Wolff 我正要提出同样的建议:)
  • 如果有两个以上,我将丢弃它们。不允许用户写入。
  • @VigneswaranMarimuthu 我会跳过它。该函数可以完成所有工作。它只需要修改以允许负数

标签: javascript jquery


【解决方案1】:

这个正则表达式也匹配负数:

/^-?\d+(\.\d{0,2})?$/
  • -? 匹配“-”或不匹配(正数和负数)
  • \d+ 一位或多位数字
  • (\.\d{0,2})? 匹配一个点“。”加上零到两位数或什么都没有(允许小数)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 2012-09-05
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    相关资源
    最近更新 更多