Javascript 允许负十进制数

Javascript 允许负十进制数,javascript,jquery,Javascript,Jquery,我有一个验证函数,只允许2位小数,但不允许超过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)) {

我有一个验证函数,只允许2位小数,但不允许超过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 = "";
        }
    }
 }

此正则表达式也匹配负数:

/^-?\d+(\.\d{0,2})?$/
  • -?
    匹配“-”或不匹配(对于正数和负数)
  • \d+
    一个或多个数字
  • (\。\d{0,2})
    匹配一个点“.”加上0到两位数字,或者根本不匹配(允许十进制)

为什么不使用js
toFixed()
method???如果小数点后两位的数量更多,你会怎么做?抛出错误,否则您将跳过它?@A.Wolff与我建议的相同:)如果有两个以上的错误,我将丢弃它们。不允许用户写入。@VigneswaranMarimuthu我将跳过它。该函数可以完成所有操作。只需修改以允许负数